summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/mpl/test/lambda_args.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/mpl/test/lambda_args.cpp')
-rw-r--r--src/boost/libs/mpl/test/lambda_args.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/boost/libs/mpl/test/lambda_args.cpp b/src/boost/libs/mpl/test/lambda_args.cpp
new file mode 100644
index 000000000..fdd26205b
--- /dev/null
+++ b/src/boost/libs/mpl/test/lambda_args.cpp
@@ -0,0 +1,48 @@
+
+// Copyright Aleksey Gurtovoy 2001-2004
+//
+// 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/libs/mpl for documentation.
+
+// $Id$
+// $Date$
+// $Revision$
+
+#include <boost/mpl/lambda.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/aux_/test.hpp>
+#include <boost/mpl/aux_/config/gcc.hpp>
+#include <boost/mpl/aux_/config/workaround.hpp>
+
+typedef int UDT::* mem_ptr;
+typedef int (UDT::* mem_fun_ptr)();
+
+#define AUX_LAMBDA_TEST(T) \
+ { MPL_ASSERT(( apply1<lambda< is_same<_,T> >::type, T> )); } \
+ { MPL_ASSERT(( apply1<lambda< is_same<T,_> >::type, T> )); } \
+ { MPL_ASSERT(( apply2<lambda< is_same<_,_> >::type, T, T> )); } \
+/**/
+
+MPL_TEST_CASE()
+{
+ AUX_LAMBDA_TEST( UDT );
+ AUX_LAMBDA_TEST( abstract );
+ AUX_LAMBDA_TEST( noncopyable );
+ AUX_LAMBDA_TEST( incomplete );
+ AUX_LAMBDA_TEST( int );
+ AUX_LAMBDA_TEST( void );
+ AUX_LAMBDA_TEST( double );
+ AUX_LAMBDA_TEST( int& );
+ AUX_LAMBDA_TEST( int* );
+#if !BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, <= 0x0295) \
+ && !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
+ AUX_LAMBDA_TEST( int[] );
+#endif
+ AUX_LAMBDA_TEST( int[10] );
+ AUX_LAMBDA_TEST( int (*)() )
+ AUX_LAMBDA_TEST( mem_ptr );
+ AUX_LAMBDA_TEST( mem_fun_ptr );
+}