fast forward variant lib

This commit is contained in:
Dennis Luxen 2014-07-08 10:45:43 +02:00
parent a5e99a95a3
commit cdd72c7e56

View File

@ -487,6 +487,8 @@ private:
} // namespace detail
struct no_init {};
template<typename... Types>
class variant
{
@ -503,12 +505,16 @@ private:
public:
VARIANT_INLINE variant()
: type_index(sizeof...(Types) - 1)
{
new (&data) typename detail::select_type<0, Types...>::type();
}
VARIANT_INLINE variant(no_init)
: type_index(detail::invalid_value) {}
template <typename T, class = typename std::enable_if<
detail::is_valid_type<T, Types...>::value>::type>
VARIANT_INLINE explicit variant(T const& val) noexcept