~ubuntu-branches/debian/sid/boost1.49/sid

« back to all changes in this revision

Viewing changes to boost/mpl/aux_/is_msvc_eti_arg.hpp

  • Committer: Package Import Robot
  • Author(s): Steve M. Robbins
  • Date: 2012-02-26 00:31:44 UTC
  • Revision ID: package-import@ubuntu.com-20120226003144-eaytp12cbf6ubpms
Tags: upstream-1.49.0
ImportĀ upstreamĀ versionĀ 1.49.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
#ifndef BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
 
3
#define BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
 
4
 
 
5
// Copyright Aleksey Gurtovoy 2001-2004
 
6
//
 
7
// Distributed under the Boost Software License, Version 1.0. 
 
8
// (See accompanying file LICENSE_1_0.txt or copy at 
 
9
// http://www.boost.org/LICENSE_1_0.txt)
 
10
//
 
11
// See http://www.boost.org/libs/mpl for documentation.
 
12
 
 
13
// $Id: is_msvc_eti_arg.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
 
14
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
 
15
// $Revision: 49267 $
 
16
 
 
17
#include <boost/mpl/aux_/yes_no.hpp>
 
18
#include <boost/mpl/aux_/config/eti.hpp>
 
19
#include <boost/mpl/aux_/config/static_constant.hpp>
 
20
 
 
21
namespace boost { namespace mpl { namespace aux {
 
22
 
 
23
#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
 
24
 
 
25
#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
 
26
 
 
27
template< typename T >
 
28
struct is_msvc_eti_arg
 
29
 
30
    BOOST_STATIC_CONSTANT(bool, value = false);
 
31
};
 
32
 
 
33
#else // BOOST_MPL_CFG_MSVC_60_ETI_BUG
 
34
 
 
35
struct eti_int_convertible
 
36
{
 
37
    eti_int_convertible(int);
 
38
};
 
39
 
 
40
template< typename T >
 
41
struct is_msvc_eti_arg
 
42
 
43
    static no_tag test(...);
 
44
    static yes_tag test(eti_int_convertible);
 
45
    static T& get();
 
46
 
 
47
    BOOST_STATIC_CONSTANT(bool, value = 
 
48
          sizeof(test(get())) == sizeof(yes_tag)
 
49
        );
 
50
};
 
51
 
 
52
#endif
 
53
 
 
54
template<>
 
55
struct is_msvc_eti_arg<int>
 
56
 
57
    BOOST_STATIC_CONSTANT(bool, value = true);
 
58
};
 
59
 
 
60
#endif // BOOST_MPL_CFG_MSVC_ETI_BUG
 
61
 
 
62
}}}
 
63
 
 
64
#endif // BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED