forked from boostorg/optional
added missing license info in one file
This commit is contained in:
@ -1,3 +1,14 @@
|
|||||||
|
// Copyright (C) 2017 Andrzej Krzemienski.
|
||||||
|
//
|
||||||
|
// Use, modification, and distribution is 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)
|
||||||
|
//
|
||||||
|
// See http://www.boost.org/libs/optional for documentation.
|
||||||
|
//
|
||||||
|
// You are welcome to contact the author at:
|
||||||
|
// akrzemi1@gmail.com
|
||||||
|
|
||||||
// trivilally-copyable version of the storage
|
// trivilally-copyable version of the storage
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
@ -69,7 +80,7 @@ class tc_optional_base : public optional_tag
|
|||||||
// ~tc_optional_base() = default;
|
// ~tc_optional_base() = default;
|
||||||
|
|
||||||
// Assigns from another optional<T> (deep-copies the rhs value)
|
// Assigns from another optional<T> (deep-copies the rhs value)
|
||||||
void assign ( tc_optional_base const& rhs )
|
void assign ( tc_optional_base const& rhs )
|
||||||
{
|
{
|
||||||
*this = rhs;
|
*this = rhs;
|
||||||
}
|
}
|
||||||
@ -84,7 +95,7 @@ class tc_optional_base : public optional_tag
|
|||||||
#else
|
#else
|
||||||
m_storage = static_cast<value_type>(rhs.get());
|
m_storage = static_cast<value_type>(rhs.get());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_initialized = rhs.is_initialized();
|
m_initialized = rhs.is_initialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,7 +110,7 @@ class tc_optional_base : public optional_tag
|
|||||||
m_initialized = rhs.is_initialized();
|
m_initialized = rhs.is_initialized();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void assign ( argument_type val )
|
void assign ( argument_type val )
|
||||||
{
|
{
|
||||||
construct(val);
|
construct(val);
|
||||||
@ -166,7 +177,7 @@ class tc_optional_base : public optional_tag
|
|||||||
{
|
{
|
||||||
construct(in_place_init, boost::forward<Args>(args)...);
|
construct(in_place_init, boost::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class... Args>
|
template<class... Args>
|
||||||
explicit tc_optional_base ( in_place_init_t, Args&&... args )
|
explicit tc_optional_base ( in_place_init_t, Args&&... args )
|
||||||
:
|
:
|
||||||
@ -174,7 +185,7 @@ class tc_optional_base : public optional_tag
|
|||||||
{
|
{
|
||||||
construct(in_place_init, boost::forward<Args>(args)...);
|
construct(in_place_init, boost::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class... Args>
|
template<class... Args>
|
||||||
explicit tc_optional_base ( in_place_init_if_t, bool cond, Args&&... args )
|
explicit tc_optional_base ( in_place_init_if_t, bool cond, Args&&... args )
|
||||||
:
|
:
|
||||||
@ -190,24 +201,24 @@ class tc_optional_base : public optional_tag
|
|||||||
m_storage = value_type( boost::forward<Arg>(arg) );
|
m_storage = value_type( boost::forward<Arg>(arg) );
|
||||||
m_initialized = true ;
|
m_initialized = true ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void construct ( in_place_init_t )
|
void construct ( in_place_init_t )
|
||||||
{
|
{
|
||||||
m_storage = value_type();
|
m_storage = value_type();
|
||||||
m_initialized = true ;
|
m_initialized = true ;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Arg>
|
template<class Arg>
|
||||||
void emplace_assign ( Arg&& arg )
|
void emplace_assign ( Arg&& arg )
|
||||||
{
|
{
|
||||||
construct(in_place_init, boost::forward<Arg>(arg)) ;
|
construct(in_place_init, boost::forward<Arg>(arg)) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void emplace_assign ()
|
void emplace_assign ()
|
||||||
{
|
{
|
||||||
construct(in_place_init) ;
|
construct(in_place_init) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Arg>
|
template<class Arg>
|
||||||
explicit tc_optional_base ( in_place_init_t, Arg&& arg )
|
explicit tc_optional_base ( in_place_init_t, Arg&& arg )
|
||||||
:
|
:
|
||||||
@ -215,11 +226,11 @@ class tc_optional_base : public optional_tag
|
|||||||
{
|
{
|
||||||
construct(in_place_init, boost::forward<Arg>(arg));
|
construct(in_place_init, boost::forward<Arg>(arg));
|
||||||
}
|
}
|
||||||
|
|
||||||
explicit tc_optional_base ( in_place_init_t )
|
explicit tc_optional_base ( in_place_init_t )
|
||||||
:
|
:
|
||||||
m_initialized(false), m_storage() {}
|
m_initialized(false), m_storage() {}
|
||||||
|
|
||||||
template<class Arg>
|
template<class Arg>
|
||||||
explicit tc_optional_base ( in_place_init_if_t, bool cond, Arg&& arg )
|
explicit tc_optional_base ( in_place_init_if_t, bool cond, Arg&& arg )
|
||||||
:
|
:
|
||||||
@ -228,7 +239,7 @@ class tc_optional_base : public optional_tag
|
|||||||
if ( cond )
|
if ( cond )
|
||||||
construct(in_place_init, boost::forward<Arg>(arg));
|
construct(in_place_init, boost::forward<Arg>(arg));
|
||||||
}
|
}
|
||||||
|
|
||||||
explicit tc_optional_base ( in_place_init_if_t, bool cond )
|
explicit tc_optional_base ( in_place_init_if_t, bool cond )
|
||||||
:
|
:
|
||||||
m_initialized(false)
|
m_initialized(false)
|
||||||
@ -238,21 +249,21 @@ class tc_optional_base : public optional_tag
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
template<class Arg>
|
template<class Arg>
|
||||||
void construct ( in_place_init_t, const Arg& arg )
|
void construct ( in_place_init_t, const Arg& arg )
|
||||||
{
|
{
|
||||||
m_storage = value_type( arg );
|
m_storage = value_type( arg );
|
||||||
m_initialized = true ;
|
m_initialized = true ;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Arg>
|
template<class Arg>
|
||||||
void construct ( in_place_init_t, Arg& arg )
|
void construct ( in_place_init_t, Arg& arg )
|
||||||
{
|
{
|
||||||
m_storage = value_type( arg );
|
m_storage = value_type( arg );
|
||||||
m_initialized = true ;
|
m_initialized = true ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void construct ( in_place_init_t )
|
void construct ( in_place_init_t )
|
||||||
{
|
{
|
||||||
m_storage = value_type();
|
m_storage = value_type();
|
||||||
@ -264,18 +275,18 @@ class tc_optional_base : public optional_tag
|
|||||||
{
|
{
|
||||||
construct(in_place_init, arg);
|
construct(in_place_init, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Arg>
|
template<class Arg>
|
||||||
void emplace_assign ( Arg& arg )
|
void emplace_assign ( Arg& arg )
|
||||||
{
|
{
|
||||||
construct(in_place_init, arg);
|
construct(in_place_init, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void emplace_assign ()
|
void emplace_assign ()
|
||||||
{
|
{
|
||||||
construct(in_place_init);
|
construct(in_place_init);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Arg>
|
template<class Arg>
|
||||||
explicit tc_optional_base ( in_place_init_t, const Arg& arg )
|
explicit tc_optional_base ( in_place_init_t, const Arg& arg )
|
||||||
: m_initialized(false)
|
: m_initialized(false)
|
||||||
@ -289,13 +300,13 @@ class tc_optional_base : public optional_tag
|
|||||||
{
|
{
|
||||||
construct(in_place_init, arg);
|
construct(in_place_init, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
explicit tc_optional_base ( in_place_init_t )
|
explicit tc_optional_base ( in_place_init_t )
|
||||||
: m_initialized(false)
|
: m_initialized(false)
|
||||||
{
|
{
|
||||||
construct(in_place_init);
|
construct(in_place_init);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Arg>
|
template<class Arg>
|
||||||
explicit tc_optional_base ( in_place_init_if_t, bool cond, const Arg& arg )
|
explicit tc_optional_base ( in_place_init_if_t, bool cond, const Arg& arg )
|
||||||
: m_initialized(false)
|
: m_initialized(false)
|
||||||
@ -303,15 +314,15 @@ class tc_optional_base : public optional_tag
|
|||||||
if ( cond )
|
if ( cond )
|
||||||
construct(in_place_init, arg);
|
construct(in_place_init, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Arg>
|
template<class Arg>
|
||||||
explicit tc_optional_base ( in_place_init_if_t, bool cond, Arg& arg )
|
explicit tc_optional_base ( in_place_init_if_t, bool cond, Arg& arg )
|
||||||
: m_initialized(false)
|
: m_initialized(false)
|
||||||
{
|
{
|
||||||
if ( cond )
|
if ( cond )
|
||||||
construct(in_place_init, arg);
|
construct(in_place_init, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
explicit tc_optional_base ( in_place_init_if_t, bool cond )
|
explicit tc_optional_base ( in_place_init_if_t, bool cond )
|
||||||
: m_initialized(false)
|
: m_initialized(false)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user