diff --git a/test/Jamfile b/test/Jamfile index 808b9ea..9766c0d 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -36,6 +36,7 @@ unit-test for_each : for_each.cpp : $(BOOST_ROOT) ; compile front.cpp ; compile identity.cpp ; compile if.cpp ; +compile index_of.cpp ; compile inherit.cpp ; compile insert.cpp ; compile insert_range.cpp ; diff --git a/test/index_of.cpp b/test/index_of.cpp new file mode 100644 index 0000000..7dce259 --- /dev/null +++ b/test/index_of.cpp @@ -0,0 +1,39 @@ +//----------------------------------------------------------------------------- +// libs mpl/test/index_of.cpp source file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2003 +// Eric Friedman +// +// 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. + +#include "boost/mpl/index_of.hpp" + +#include "boost/static_assert.hpp" +#include "boost/mpl/list.hpp" + +namespace mpl = boost::mpl; + +int test_main(int , char* []) +{ + typedef mpl::list< int, double, float >::type types; + + typedef mpl::index_of< types, int >::type index_of_int; + typedef mpl::index_of< types, double >::type index_of_double; + typedef mpl::index_of< types, float >::type index_of_float; + typedef mpl::index_of< types, char >::type index_of_char; + + BOOST_STATIC_ASSERT( index_of_int::value == 0 ); + BOOST_STATIC_ASSERT( index_of_double::value == 1 ); + BOOST_STATIC_ASSERT( index_of_float::value == 2 ); + BOOST_STATIC_ASSERT( index_of_char::value == -1 ); // 'not found' + + return 0; +}