diff options
author | Xanadu <none@none> | 2010-07-20 02:49:28 +0200 |
---|---|---|
committer | Xanadu <none@none> | 2010-07-20 02:49:28 +0200 |
commit | 79622802f397258ee0f34327ba3ae6977ca3e7ff (patch) | |
tree | 1868946c234ab9ee256a6b7766a15713eae94235 /externals/ace/If_Then_Else.h | |
parent | 7dd2dc91816ab8b3bc3b99a1b1c99c7ea314d5a8 (diff) | |
parent | f906976837502fa5aa81b982b901d1509f5aa0c4 (diff) |
Merge. Revision history for source files should be all back now.
--HG--
branch : trunk
rename : sql/CMakeLists.txt => sql/tools/CMakeLists.txt
rename : src/server/game/Pools/PoolHandler.cpp => src/server/game/Pools/PoolMgr.cpp
rename : src/server/game/Pools/PoolHandler.h => src/server/game/Pools/PoolMgr.h
rename : src/server/game/PrecompiledHeaders/NixCorePCH.cpp => src/server/game/PrecompiledHeaders/gamePCH.cpp
rename : src/server/game/PrecompiledHeaders/NixCorePCH.h => src/server/game/PrecompiledHeaders/gamePCH.h
Diffstat (limited to 'externals/ace/If_Then_Else.h')
-rw-r--r-- | externals/ace/If_Then_Else.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/externals/ace/If_Then_Else.h b/externals/ace/If_Then_Else.h new file mode 100644 index 00000000000..eca1d9dd83a --- /dev/null +++ b/externals/ace/If_Then_Else.h @@ -0,0 +1,89 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file If_Then_Else.h + * + * @c ACE::If_Then_Else traits template based on the @c IfThenElse + * template described in the book "C++ Templates" by Vandevoorde and + * Josuttis. + * + * $Id: If_Then_Else.h 80826 2008-03-04 14:51:23Z wotte $ + * + * @author Ossama Othman <ossama@dre.vanderbilt.edu> + */ +//============================================================================= + +#ifndef ACE_IF_THEN_ELSE_H +#define ACE_IF_THEN_ELSE_H + +#include "ace/config-lite.h" + +ACE_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace ACE +{ + + /** + * @struct If_Then_Else + * + * @brief Compile-time selection of type based on a boolean value. + * + * This primary template selects the second or third argument based + * on the value of the boolean first argument. + * + * Usage example: + * + * \code + * + * template <typename T> + * class Foo + * { + * public: + * // Set "TheType" to be the larger of "T" and "int". + * typedef typename If_Then_Else<(sizeof (T) > sizeof (int)), + * T, + * int>::result_type TheType; + * }; + * + * \endcode + * + * @note This merely a forward declaration since we really only care + * about the partial specializations below. + */ + template <bool C, typename Ta, typename Tb> + struct If_Then_Else; + + /** + * @struct If_Then_Else + * + * @brief Select of type @a Ta if boolean value is @c true. + * + * This partial specialization selects the type @a Ta if the boolean + * first argument is @c true. + */ + template <typename Ta, typename Tb> + struct If_Then_Else<true, Ta, Tb> + { + typedef Ta result_type; + }; + + /** + * @struct If_Then_Else + * + * @brief Select of type @a Tb if boolean value is @c false. + * + * This partial specialization selects the type @a Tb if the boolean + * first argument is @c false. + */ + template <typename Ta, typename Tb> + struct If_Then_Else<false, Ta, Tb> + { + typedef Tb result_type; + }; + +} + +ACE_END_VERSIONED_NAMESPACE_DECL + +#endif /* ACE_IF_THEN_ELSE_H */ |