Recursive de-referencable nil_
This commit is contained in:
parent
a7885e88a9
commit
63a7d1607d
@ -33,8 +33,15 @@
|
|||||||
namespace utl {
|
namespace utl {
|
||||||
namespace meta {
|
namespace meta {
|
||||||
|
|
||||||
//! Empty type
|
/*!
|
||||||
struct nil_ { };
|
* Empty type
|
||||||
|
* utl::meta's nil type is not pure nil. It's a recursive "de-referencable nil.
|
||||||
|
* Each time someone applies ::type to it, he gets back nil_. This way we can prevent
|
||||||
|
* a lot of compilation errors in a wrong meta:: handling.
|
||||||
|
*/
|
||||||
|
struct nil_ {
|
||||||
|
using type = nil_;
|
||||||
|
};
|
||||||
|
|
||||||
//! Type alias for \p _Tp::type. Used to extract return type of metafunctions
|
//! Type alias for \p _Tp::type. Used to extract return type of metafunctions
|
||||||
template <typename _Tp>
|
template <typename _Tp>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user