array.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 85 行
CPP
85 行
// Boost.Assign library//// Copyright Thorsten Ottosen 2003-2004. Use, modification and// distribution is subject to 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)//// For more information, see http://www.boost.org/libs/assign///#include <boost/detail/workaround.hpp>#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x564) )# pragma warn -8091 // supress warning in Boost.Test# pragma warn -8057 // unused argument argc/argv in Boost.Test#endif#include <boost/assign/list_of.hpp>#include <boost/array.hpp>#include <boost/test/test_tools.hpp>#include <iostream>#include <algorithm>#include <iterator>void check_array(){ using namespace std; using namespace boost; using namespace boost::assign; typedef array<float,6> Array;#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) Array a = list_of(1)(2)(3)(4)(5)(6).to_array(a);#else Array a = list_of(1)(2)(3)(4)(5)(6);#endif BOOST_CHECK_EQUAL( a[0], 1 ); BOOST_CHECK_EQUAL( a[5], 6 ); // last element is implicitly 0#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) Array a2 = list_of(1)(2)(3)(4)(5).to_array(a2);#else Array a2 = list_of(1)(2)(3)(4)(5);#endif BOOST_CHECK_EQUAL( a2[5], 0 ); // two last elements are implicitly#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) a2 = list_of(1))(2)(3)(4).to_array(a2);#else a2 = list_of(1)(2)(3)(4);#endif BOOST_CHECK_EQUAL( a2[4], 0 ); BOOST_CHECK_EQUAL( a2[5], 0 ); // too many arguments#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) BOOST_CHECK_THROW( a2 = list_of(1)(2)(3)(4)(5)(6)(6).to_array(a2), assignment_exception );#else BOOST_CHECK_THROW( a2 = list_of(1)(2)(3)(4)(5)(6)(7), assignment_exception );#endif }#include <boost/test/unit_test.hpp>using boost::unit_test::test_suite;test_suite* init_unit_test_suite( int argc, char* argv[] ){ test_suite* test = BOOST_TEST_SUITE( "List Test Suite" ); test->add( BOOST_TEST_CASE( &check_array ) ); return test;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?