forked from boostorg/smart_ptr
		
	Add additional overload for allocate_shared and make_shared array forms that take initializer list of T for the array types T[M][N] ........ Minor style change: Fix indentation in allocate_shared_array.hpp and make_shared_array.hpp ........ [SVN r81366]
		
			
				
	
	
		
			59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2012 Glen Joseph Fernandes 
 | |
|  * glenfe at live dot com
 | |
|  *
 | |
|  * Distributed under the Boost Software License, 
 | |
|  * Version 1.0. (See accompanying file LICENSE_1_0.txt 
 | |
|  * or copy at http://boost.org/LICENSE_1_0.txt)
 | |
|  */
 | |
| #include <boost/detail/lightweight_test.hpp>
 | |
| #include <boost/smart_ptr/allocate_shared_array.hpp>
 | |
| 
 | |
| int main() {
 | |
| #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
 | |
|     {
 | |
|         boost::shared_ptr<int[][2]> a1 = boost::allocate_shared<int[][2]>(std::allocator<int>(), { {0, 1}, {2, 3} });
 | |
|         BOOST_TEST(a1[0][0] == 0);
 | |
|         BOOST_TEST(a1[0][1] == 1);
 | |
|         BOOST_TEST(a1[1][0] == 2);
 | |
|         BOOST_TEST(a1[1][1] == 3);
 | |
|     }
 | |
|     {
 | |
|         boost::shared_ptr<int[2][2]> a1 = boost::allocate_shared<int[2][2]>(std::allocator<int>(), { {0, 1}, {2, 3} });
 | |
|         BOOST_TEST(a1[0][0] == 0);
 | |
|         BOOST_TEST(a1[0][1] == 1);
 | |
|         BOOST_TEST(a1[1][0] == 2);
 | |
|         BOOST_TEST(a1[1][1] == 3);
 | |
|     }
 | |
|     {
 | |
|         boost::shared_ptr<int[2][2]> a1 = boost::allocate_shared<int[2][2]>(std::allocator<int>(), {0, 1});
 | |
|         BOOST_TEST(a1[0][0] == 0);
 | |
|         BOOST_TEST(a1[0][1] == 1);
 | |
|         BOOST_TEST(a1[1][0] == 0);
 | |
|         BOOST_TEST(a1[1][1] == 1);
 | |
|     }
 | |
|     {
 | |
|         boost::shared_ptr<int[][2]> a1 = boost::allocate_shared<int[][2]>(std::allocator<int>(), 2, {0, 1});
 | |
|         BOOST_TEST(a1[0][0] == 0);
 | |
|         BOOST_TEST(a1[0][1] == 1);
 | |
|         BOOST_TEST(a1[1][0] == 0);
 | |
|         BOOST_TEST(a1[1][1] == 1);
 | |
|     }
 | |
|     {
 | |
|         boost::shared_ptr<int[][2][2]> a1 = boost::allocate_shared<int[][2][2]>(std::allocator<int>(), 2, { {0, 1}, {2, 3} });
 | |
|         BOOST_TEST(a1[0][0][0] == 0);
 | |
|         BOOST_TEST(a1[0][0][1] == 1);
 | |
|         BOOST_TEST(a1[1][1][0] == 2);
 | |
|         BOOST_TEST(a1[1][1][1] == 3);
 | |
|     }
 | |
|     {
 | |
|         boost::shared_ptr<int[2][2][2]> a1 = boost::allocate_shared<int[2][2][2]>(std::allocator<int>(), { {0, 1}, {2, 3} });
 | |
|         BOOST_TEST(a1[0][0][0] == 0);
 | |
|         BOOST_TEST(a1[0][0][1] == 1);
 | |
|         BOOST_TEST(a1[1][1][0] == 2);
 | |
|         BOOST_TEST(a1[1][1][1] == 3);
 | |
|     }
 | |
| #endif
 | |
|     return boost::report_errors();
 | |
| }
 |