Add ADL guard for empty_value and new member typedef

This commit is contained in:
Glen Fernandes
2018-10-01 00:26:08 -04:00
parent 9dfa265b49
commit 5ed58ee20f
2 changed files with 18 additions and 0 deletions

View File

@ -85,6 +85,8 @@ struct empty_init_t { };
template<class T, unsigned Index = 0, bool Empty = ``/see below/``>
class empty_value {
public:
typedef T type;
empty_value() = default;
template<class... Args>
@ -107,6 +109,12 @@ public:
[endsect]
[section Member types]
[variablelist [[`type`][The template parameter `T`]]]
[endsect]
[section Constructors]
[variablelist

View File

@ -40,9 +40,13 @@ struct use_empty_value_base {
struct empty_init_t { };
namespace empty_ {
template<class T, unsigned N = 0, bool E = use_empty_value_base<T>::value>
class empty_value {
public:
typedef T type;
#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
empty_value() = default;
#else
@ -85,6 +89,8 @@ template<class T, unsigned N>
class empty_value<T, N, true>
: T {
public:
typedef T type;
#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
empty_value() = default;
#else
@ -120,6 +126,10 @@ public:
};
#endif
} /* empty_ */
using empty_::empty_value;
} /* boost */
#endif