|
@@ -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>
|
|
|