~ubuntu-branches/ubuntu/wily/davix/wily

« back to all changes in this revision

Viewing changes to deps/boost_intern/boost/mpl/aux_/msvc_eti_base.hpp

  • Committer: Package Import Robot
  • Author(s): Mattias Ellert
  • Date: 2015-07-31 13:17:55 UTC
  • mfrom: (5.1.3 sid)
  • Revision ID: package-import@ubuntu.com-20150731131755-mizprbmn7ogv33te
Tags: 0.4.1-1
* Update to version 0.4.1
* Implement Multi-Arch support

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
#ifndef BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
3
 
#define BOOST_MPL_AUX_MSVC_ETI_BASE_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: msvc_eti_base.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
14
 
// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
15
 
// $Revision: 49267 $
16
 
 
17
 
#include <boost/mpl/aux_/is_msvc_eti_arg.hpp>
18
 
#include <boost/mpl/aux_/config/eti.hpp>
19
 
#include <boost/mpl/aux_/config/gcc.hpp>
20
 
#include <boost/mpl/aux_/config/workaround.hpp>
21
 
 
22
 
namespace boost { namespace mpl { namespace aux {
23
 
 
24
 
#if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
25
 
 
26
 
template< bool > struct msvc_eti_base_impl
27
 
{
28
 
    template< typename T > struct result_
29
 
        : T
30
 
    {
31
 
        typedef T type;
32
 
    };
33
 
};
34
 
 
35
 
template<> struct msvc_eti_base_impl<true>
36
 
{
37
 
    template< typename T > struct result_
38
 
    {
39
 
        typedef result_ type;
40
 
        typedef result_ first;
41
 
        typedef result_ second;
42
 
        typedef result_ tag;
43
 
        enum { value = 0 };
44
 
    };
45
 
};
46
 
 
47
 
template< typename T > struct msvc_eti_base
48
 
    : msvc_eti_base_impl< is_msvc_eti_arg<T>::value >
49
 
        ::template result_<T>
50
 
{
51
 
};
52
 
 
53
 
#else // !BOOST_MPL_CFG_MSVC_70_ETI_BUG
54
 
 
55
 
template< typename T > struct msvc_eti_base
56
 
    : T
57
 
{
58
 
#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
59
 
    msvc_eti_base();
60
 
#endif
61
 
    typedef T type;
62
 
};
63
 
 
64
 
#endif 
65
 
 
66
 
template<> struct msvc_eti_base<int>
67
 
{
68
 
    typedef msvc_eti_base type;
69
 
    typedef msvc_eti_base first;
70
 
    typedef msvc_eti_base second;
71
 
    typedef msvc_eti_base tag;
72
 
    enum { value = 0 };
73
 
};
74
 
 
75
 
}}}
76
 
 
77
 
#endif // BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED