Skip to content

Commit a48085c

Browse files
Merge branch 'master' of github.com:highperformancecoder/classdesc
2 parents 94dad95 + f6aaac2 commit a48085c

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

classdesc.h

+7
Original file line numberDiff line numberDiff line change
@@ -952,12 +952,16 @@ namespace classdesc
952952
{
953953
ExcludeClass() {}
954954
template <class U> explicit ExcludeClass(const U& x): T(x) {}
955+
#if __cplusplus>=201103L
956+
template <class... U> explicit ExcludeClass(U... args): T(std::forward<U>(args)...) {}
957+
#endif
955958
template <class U> const T& operator=(const U& x) {return T::operator=(x);}
956959
// template <class U> operator const U&() const {return *static_cast<const U*>(static_cast<const T*>(this));}
957960
template <class U> operator const U&() const {return *(const U*)this;}
958961
// template <class U> operator U&() {return *static_cast<U*>(static_cast<T*>(this));}
959962
template <class U> operator U&() {return *(U*)this;}
960963
// other operators?
964+
961965
};
962966

963967
template <class T>
@@ -993,6 +997,9 @@ namespace classdesc
993997
typedef typename conditional
994998
<is_class<T>::value, ExcludeClass<T>, ExcludeFundamental<T> >::T Super;
995999
Exclude() {}
1000+
#if __cplusplus>=201103L
1001+
template <class... U> explicit Exclude(U... args): Super(std::forward<U>(args)...) {}
1002+
#endif
9961003
template <class U> explicit Exclude(const U& x): Super(x) {}
9971004
template <class U> const T& operator=(const U& x) {return Super::operator=(x);}
9981005
};

0 commit comments

Comments
 (0)