Revert "Ugly, not-to-be-pushed sucking in of all of Boost to get windows to work."
[dyninst.git] / external / boost / detail / select_type.hpp
1 // (C) Copyright David Abrahams 2001.\r
2 // Distributed under the Boost Software License, Version 1.0. (See\r
3 // accompanying file LICENSE_1_0.txt or copy at\r
4 // http://www.boost.org/LICENSE_1_0.txt)\r
5 //\r
6 // See http://www.boost.org for most recent version including documentation.\r
7 \r
8 // Revision History\r
9 // 09 Feb 01  Applied John Maddock's Borland patch Moving <true>\r
10 //            specialization to unspecialized template (David Abrahams)\r
11 // 06 Feb 01  Created (David Abrahams)\r
12 \r
13 #ifndef SELECT_TYPE_DWA20010206_HPP\r
14 # define SELECT_TYPE_DWA20010206_HPP\r
15 \r
16 namespace boost { namespace detail {\r
17 \r
18   // Template class if_true -- select among 2 types based on a bool constant expression\r
19   // Usage:\r
20   //   typename if_true<(bool_const_expression)>::template then<true_type, false_type>::type\r
21 \r
22   // HP aCC cannot deal with missing names for template value parameters\r
23   template <bool b> struct if_true\r
24   {\r
25       template <class T, class F>\r
26       struct then { typedef T type; };\r
27   };\r
28 \r
29   template <>\r
30   struct if_true<false>\r
31   {\r
32       template <class T, class F>\r
33       struct then { typedef F type; };\r
34   };\r
35 }}\r
36 #endif // SELECT_TYPE_DWA20010206_HPP\r