From 6d3dae71029d857dcac473cd8df561744d0183a8 Mon Sep 17 00:00:00 2001 From: Aleksey Gurtovoy Date: Sat, 2 Aug 2003 23:17:18 +0000 Subject: [PATCH] add template_arity test [SVN r19407] --- test/aux_/Jamfile | 1 + test/aux_/template_arity.cpp | 39 ++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 test/aux_/template_arity.cpp diff --git a/test/aux_/Jamfile b/test/aux_/Jamfile index e8a79d2..0186c40 100644 --- a/test/aux_/Jamfile +++ b/test/aux_/Jamfile @@ -10,3 +10,4 @@ compile has_distance.cpp ; compile has_xxx.cpp ; compile no_has_xxx.cpp ; compile typeof.cpp ; +compile template_arity.cpp ; diff --git a/test/aux_/template_arity.cpp b/test/aux_/template_arity.cpp new file mode 100644 index 0000000..3723c7e --- /dev/null +++ b/test/aux_/template_arity.cpp @@ -0,0 +1,39 @@ + +// + file: libs/mpl/test/aux_/template_arity.cpp +// + last modified: 10/jul/03 + +// Copyright (c) 2000-03 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. +// +// See http://www.boost.org/libs/mpl for documentation. + +#include "boost/mpl/aux_/template_arity.hpp" +#include "boost/static_assert.hpp" + +# if defined(BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) + +using namespace boost::mpl; + +struct my {}; +template< typename T1 > struct my1 {}; +template< typename T1, typename T2 = void > struct my2 {}; + +int main() +{ + BOOST_STATIC_ASSERT((aux::template_arity::value == -1)); + BOOST_STATIC_ASSERT((aux::template_arity< my1 >::value == 1)); + BOOST_STATIC_ASSERT((aux::template_arity< my2 >::value == 2)); + BOOST_STATIC_ASSERT((aux::template_arity< my2 >::value == 2)); + + return 0; +} + +# endif