Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 4 additions & 22 deletions include/boost/any/basic_any.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -172,44 +172,26 @@ BOOST_ANY_BEGIN_MODULE_EXPORT
std::is_nothrow_move_constructible<ValueType>::value>
{};

template <typename ValueType>
static void create(basic_any& any, const ValueType& value, std::true_type)
{
using DecayedType = typename std::decay<const ValueType>::type;

any.man = &small_manager<DecayedType>;
new (&any.content.small_value) ValueType(value);
}

template <typename ValueType>
static void create(basic_any& any, const ValueType& value, std::false_type)
{
using DecayedType = typename std::decay<const ValueType>::type;

any.man = &large_manager<DecayedType>;
any.content.large_value = new DecayedType(value);
}

template <typename ValueType>
static void create(basic_any& any, ValueType&& value, std::true_type)
{
using DecayedType = typename std::decay<const ValueType>::type;
using DecayedType = typename std::decay<ValueType>::type;
any.man = &small_manager<DecayedType>;
new (&any.content.small_value) DecayedType(std::forward<ValueType>(value));
}

template <typename ValueType>
static void create(basic_any& any, ValueType&& value, std::false_type)
{
using DecayedType = typename std::decay<const ValueType>::type;
using DecayedType = typename std::decay<ValueType>::type;
any.man = &large_manager<DecayedType>;
any.content.large_value = new DecayedType(std::forward<ValueType>(value));
}
/// @endcond

public: // non-type template parameters accessors
static constexpr std::size_t buffer_size = OptimizeForSize;
static constexpr std::size_t buffer_align = OptimizeForAlignment;
static constexpr std::size_t buffer_size = OptimizeForSize;
static constexpr std::size_t buffer_align = OptimizeForAlignment;

public: // structors

Expand Down