mirror of
https://github.com/boostorg/functional.git
synced 2025-07-31 04:57:16 +02:00
Add extra test for factory with std::allocator
So that it doesn't have to have warnings disabled, as in the other allocator test.
This commit is contained in:
@ -14,9 +14,11 @@ test-suite functional/factory
|
|||||||
[ run value_factory.cpp ]
|
[ run value_factory.cpp ]
|
||||||
[ run factory.cpp ]
|
[ run factory.cpp ]
|
||||||
[ run factory_with_allocator.cpp ]
|
[ run factory_with_allocator.cpp ]
|
||||||
|
[ run factory_with_std_allocator.cpp ]
|
||||||
[ compile-fail factory_with_none_t.cpp ]
|
[ compile-fail factory_with_none_t.cpp ]
|
||||||
[ run factory.cpp : : : <define>BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T : none_t_factory ]
|
[ run factory.cpp : : : <define>BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T : none_t_factory ]
|
||||||
[ run factory_with_allocator.cpp : : : <define>BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T : none_t_factory_with_allocator ]
|
[ run factory_with_allocator.cpp : : : <define>BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T : none_t_factory_with_allocator ]
|
||||||
|
[ run factory_with_std_allocator.cpp : : : <define>BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T : none_t_factory_with_std_allocator ]
|
||||||
[ run factory_with_none_t.cpp : : : <define>BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T : none_t_factory_with_none_t ]
|
[ run factory_with_none_t.cpp : : : <define>BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T : none_t_factory_with_none_t ]
|
||||||
;
|
;
|
||||||
|
|
||||||
|
45
factory/test/factory_with_std_allocator.cpp
Normal file
45
factory/test/factory_with_std_allocator.cpp
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2007 Tobias Schwinger
|
||||||
|
Copyright (c) 2017 Daniel James
|
||||||
|
|
||||||
|
Use modification and distribution are 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).
|
||||||
|
==============================================================================*/
|
||||||
|
|
||||||
|
#include <boost/functional/factory.hpp>
|
||||||
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
#include <memory>
|
||||||
|
#include <boost/shared_ptr.hpp>
|
||||||
|
|
||||||
|
class sum
|
||||||
|
{
|
||||||
|
int val_sum;
|
||||||
|
public:
|
||||||
|
sum(int a, int b) : val_sum(a + b) { }
|
||||||
|
|
||||||
|
operator int() const { return this->val_sum; }
|
||||||
|
};
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int one = 1, two = 2;
|
||||||
|
{
|
||||||
|
boost::shared_ptr<sum> instance(
|
||||||
|
boost::factory< boost::shared_ptr<sum>, std::allocator<int>,
|
||||||
|
boost::factory_alloc_for_pointee_and_deleter >()(one,two) );
|
||||||
|
BOOST_TEST(*instance == 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
boost::shared_ptr<sum> instance(
|
||||||
|
boost::factory< boost::shared_ptr<sum>, std::allocator<int>,
|
||||||
|
boost::factory_passes_alloc_to_smart_pointer >()(one,two) );
|
||||||
|
BOOST_TEST(*instance == 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
return boost::report_errors();
|
||||||
|
}
|
||||||
|
|
Reference in New Issue
Block a user