// (C) Copyright David Abrahams 2001. | |
// Distributed under 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) | |
// | |
// See http://www.boost.org for most recent version including documentation. | |
// Revision History | |
// 09 Feb 01 Applied John Maddock's Borland patch Moving <true> | |
// specialization to unspecialized template (David Abrahams) | |
// 06 Feb 01 Created (David Abrahams) | |
#ifndef SELECT_TYPE_DWA20010206_HPP | |
# define SELECT_TYPE_DWA20010206_HPP | |
namespace boost { namespace detail { | |
// Template class if_true -- select among 2 types based on a bool constant expression | |
// Usage: | |
// typename if_true<(bool_const_expression)>::template then<true_type, false_type>::type | |
// HP aCC cannot deal with missing names for template value parameters | |
template <bool b> struct if_true | |
{ | |
template <class T, class F> | |
struct then { typedef T type; }; | |
}; | |
template <> | |
struct if_true<false> | |
{ | |
template <class T, class F> | |
struct then { typedef F type; }; | |
}; | |
}} | |
#endif // SELECT_TYPE_DWA20010206_HPP |