]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/functional/factory/test/factory_with_none_t.cpp
1 /*=============================================================================
2 Copyright (c) 2007 Tobias Schwinger
4 Use modification and distribution are subject to the Boost Software
5 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
6 http://www.boost.org/LICENSE_1_0.txt).
7 ==============================================================================*/
9 #include <boost/functional/factory.hpp>
10 #include <boost/detail/lightweight_test.hpp>
11 #include <boost/none_t.hpp>
19 sum(int a
, int b
) : val_sum(a
+ b
) { }
21 operator int() const { return this->val_sum
; }
24 // Suppress warnings about std::auto_ptr.
25 #if defined(__clang__)
26 #pragma clang diagnostic push
27 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
34 sum
* instance( boost::factory
< sum
*, boost::none_t
>()(one
,two
) );
35 BOOST_TEST(*instance
== 3);
37 #if !defined(BOOST_NO_AUTO_PTR)
39 std::auto_ptr
<sum
> instance(
40 boost::factory
< std::auto_ptr
<sum
>, boost::none_t
>()(one
,two
) );
41 BOOST_TEST(*instance
== 3);
44 #if !defined(BOOST_NO_CXX11_SMART_PTR)
46 std::unique_ptr
<sum
> instance(
47 boost::factory
< std::unique_ptr
<sum
>, boost::none_t
>()(one
,two
) );
48 BOOST_TEST(*instance
== 3);
51 return boost::report_errors();
54 #if defined(__clang__)
55 #pragma clang diagnostic pop