diff options
| author | Remko Tronçon <git@el-tramo.be> | 2009-06-01 08:48:42 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2009-06-01 09:24:28 (GMT) | 
| commit | 2812bddd81f8a1b804c7460f4e14cd0aa393d129 (patch) | |
| tree | d46294f35150c4f0f43deaf2d31fceaf945ae715 /3rdParty/Boost/boost/utility/enable_if.hpp | |
| download | swift-2812bddd81f8a1b804c7460f4e14cd0aa393d129.zip swift-2812bddd81f8a1b804c7460f4e14cd0aa393d129.tar.bz2  | |
Import.
Diffstat (limited to '3rdParty/Boost/boost/utility/enable_if.hpp')
| -rw-r--r-- | 3rdParty/Boost/boost/utility/enable_if.hpp | 119 | 
1 files changed, 119 insertions, 0 deletions
diff --git a/3rdParty/Boost/boost/utility/enable_if.hpp b/3rdParty/Boost/boost/utility/enable_if.hpp new file mode 100644 index 0000000..d292c6a --- /dev/null +++ b/3rdParty/Boost/boost/utility/enable_if.hpp @@ -0,0 +1,119 @@ +// Boost enable_if library + +// Copyright 2003 (c) The Trustees of Indiana University. + +// Use, modification, and distribution is subject to the Boost Software +// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +//    Authors: Jaakko Jarvi (jajarvi at osl.iu.edu) +//             Jeremiah Willcock (jewillco at osl.iu.edu) +//             Andrew Lumsdaine (lums at osl.iu.edu) + + +#ifndef BOOST_UTILITY_ENABLE_IF_HPP +#define BOOST_UTILITY_ENABLE_IF_HPP + +#include "boost/config.hpp" + +// Even the definition of enable_if causes problems on some compilers, +// so it's macroed out for all compilers that do not support SFINAE + +#ifndef BOOST_NO_SFINAE + +namespace boost +{ +  +  template <bool B, class T = void> +  struct enable_if_c { +    typedef T type; +  }; + +  template <class T> +  struct enable_if_c<false, T> {}; + +  template <class Cond, class T = void>  +  struct enable_if : public enable_if_c<Cond::value, T> {}; + +  template <bool B, class T> +  struct lazy_enable_if_c { +    typedef typename T::type type; +  }; + +  template <class T> +  struct lazy_enable_if_c<false, T> {}; + +  template <class Cond, class T>  +  struct lazy_enable_if : public lazy_enable_if_c<Cond::value, T> {}; + + +  template <bool B, class T = void> +  struct disable_if_c { +    typedef T type; +  }; + +  template <class T> +  struct disable_if_c<true, T> {}; + +  template <class Cond, class T = void>  +  struct disable_if : public disable_if_c<Cond::value, T> {}; + +  template <bool B, class T> +  struct lazy_disable_if_c { +    typedef typename T::type type; +  }; + +  template <class T> +  struct lazy_disable_if_c<true, T> {}; + +  template <class Cond, class T>  +  struct lazy_disable_if : public lazy_disable_if_c<Cond::value, T> {}; + +} // namespace boost + +#else + +namespace boost { + +  namespace detail { typedef void enable_if_default_T; } + +  template <typename T> +  struct enable_if_does_not_work_on_this_compiler; + +  template <bool B, class T = detail::enable_if_default_T> +  struct enable_if_c : enable_if_does_not_work_on_this_compiler<T> +  { }; + +  template <bool B, class T = detail::enable_if_default_T>  +  struct disable_if_c : enable_if_does_not_work_on_this_compiler<T> +  { }; + +  template <bool B, class T = detail::enable_if_default_T>  +  struct lazy_enable_if_c : enable_if_does_not_work_on_this_compiler<T> +  { }; + +  template <bool B, class T = detail::enable_if_default_T>  +  struct lazy_disable_if_c : enable_if_does_not_work_on_this_compiler<T> +  { }; + +  template <class Cond, class T = detail::enable_if_default_T>  +  struct enable_if : enable_if_does_not_work_on_this_compiler<T> +  { }; + +  template <class Cond, class T = detail::enable_if_default_T>  +  struct disable_if : enable_if_does_not_work_on_this_compiler<T> +  { }; + +  template <class Cond, class T = detail::enable_if_default_T>  +  struct lazy_enable_if : enable_if_does_not_work_on_this_compiler<T> +  { }; + +  template <class Cond, class T = detail::enable_if_default_T>  +  struct lazy_disable_if : enable_if_does_not_work_on_this_compiler<T> +  { }; + +} // namespace boost + +#endif // BOOST_NO_SFINAE + +#endif  | 
 Swift