From 1833977f7542673b68cb6b9b6ea523c71e93c1c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20J=C3=A4rvi?= Date: Wed, 2 Jul 2003 21:34:52 +0000 Subject: [PATCH] *** empty log message *** [SVN r1402] --- include/boost/utility/enable_if.hpp | 93 +++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 include/boost/utility/enable_if.hpp diff --git a/include/boost/utility/enable_if.hpp b/include/boost/utility/enable_if.hpp new file mode 100644 index 0000000..4a0a408 --- /dev/null +++ b/include/boost/utility/enable_if.hpp @@ -0,0 +1,93 @@ +// +// Software License +// +// Copyright 2003 © The Trustees of Indiana University. All rights +// reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// 1. All redistributions of source code must retain the above copyright +// notice, the list of authors in the original source code, this list +// of conditions and the disclaimer listed in this license; +// 2. All redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the disclaimer +// listed in this license in the documentation and/or other materials +// provided with the distribution; +// 3. Any documentation included with all redistributions must include +// the following acknowledgement: +// +// +// This product includes software developed by the Open Systems Laboratory +// at Indiana University. For further information contact Andrew Lumsdaine +// at lums@osl.iu.edu. +// +// Alternatively, this acknowledgement may appear in the software itself, +// and wherever such third-party acknowledgments normally appear. +// +// 4. The name Indiana University shall not be used to endorse or promote +// products derived from this software without prior written permission +// from Indiana University. For written permission, please contact the +// Advanced Research and Technology Institute (ARTI) at 1100 Waterway +// Blvd., Indianapolis, Indiana 46202. +// 5. Products derived from this software may not be called enable_if, nor +// may Indiana University appear in their name, without prior written +// permission of ARTI. +// +// +// +// Indiana University provides no reassurances that the source code +// provided does not infringe the patent or any other intellectual +// property rights of any other entity. Indiana University disclaims any +// liability to any recipient for claims brought by any other entity +// based on infringement of intellectual property rights or otherwise. +// +// LICENSEE UNDERSTANDS THAT SOFTWARE IS PROVIDED "AS IS" FOR WHICH +// NO WARRANTIES AS TO CAPABILITIES OR ACCURACY ARE MADE. INDIANA +// UNIVERSITY GIVES NO WARRANTIES AND MAKES NO REPRESENTATION THAT +// SOFTWARE IS FREE OF INFRINGEMENT OF THIRD PARTY PATENT, COPYRIGHT, OR +// OTHER PROPRIETARY RIGHTS. INDIANA UNIVERSITY MAKES NO WARRANTIES THAT +// SOFTWARE IS FREE FROM "BUGS", "VIRUSES", "TROJAN HORSES", "TRAP +// DOORS", "WORMS", OR OTHER HARMFUL CODE. LICENSEE ASSUMES THE ENTIRE +// RISK AS TO THE PERFORMANCE OF SOFTWARE AND/OR ASSOCIATED MATERIALS, +// AND TO THE PERFORMANCE AND VALIDITY OF INFORMATION GENERATED USING +// SOFTWARE. +// +// +// Authors: Jaakko Järvi (jajarvi@osl.iu.edu) +// Jeremiah Willcock (jewillco@osl.iu.edu) +// Andrew Lumsdaine (lums@osl.iu.edu) +// + +#ifndef BOOST_UTILITY_ENABLE_IF_HPP +#define BOOST_UTILITY_ENABLE_IF_HPP + +namespace boost +{ + + template + struct enable_if { + typedef T type; + }; + + template + struct enable_if {}; + + + template + struct enable_if_lazy { + typedef typename T::type type; + }; + + template + struct enable_if_lazy {}; + + template + struct disable_if: public enable_if< !B, T> {}; + + template + struct disable_if_lazy: public enable_if_lazy< !B, T> {}; + +} // namespace boost + +#endif