diff options
Diffstat (limited to 'src/boost/libs/array/test/array_getfail1.cpp')
-rw-r--r-- | src/boost/libs/array/test/array_getfail1.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/boost/libs/array/test/array_getfail1.cpp b/src/boost/libs/array/test/array_getfail1.cpp new file mode 100644 index 000000000..d89b1ff1a --- /dev/null +++ b/src/boost/libs/array/test/array_getfail1.cpp @@ -0,0 +1,50 @@ +/* tests using std::get on boost:array + * (C) Copyright Marshall Clow 2012 + * 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) + */ + +#include <boost/array.hpp> +#include <boost/static_assert.hpp> + + +#include <string> +#include <iostream> +#include <algorithm> +#ifndef BOOST_NO_CXX11_HDR_ARRAY +#include <array> +#endif + +#include <boost/core/lightweight_test_trait.hpp> + +namespace { + + #ifndef BOOST_NO_CXX11_HDR_ARRAY + template< class T > + void RunStdTests() + { + typedef boost::array< T, 5 > test_type; + typedef T arr[5]; + test_type test_case; // = { 1, 1, 2, 3, 5 }; + + T &aRef = std::get<5> ( test_case ); // should fail to compile + BOOST_TEST ( &*test_case.begin () == &aRef ); + } + #endif + +} + +int main() +{ +#ifndef BOOST_NO_CXX11_HDR_ARRAY + RunStdTests< bool >(); + RunStdTests< void * >(); + RunStdTests< long double >(); + RunStdTests< std::string >(); +#else + BOOST_STATIC_ASSERT ( false ); // fail on C++03 systems. +#endif + + return boost::report_errors(); +} |