mn_void.hpp
Go to the documentation of this file.
1 
19 #ifndef __MINILIB_VOID_TYPE_H__
20 #define __MINILIB_VOID_TYPE_H__
21 
22 #define config_HAVEVOIDT 1
23 
24 #include "mn_config.hpp"
25 
26 namespace mn {
31  public:
36 
41  basic_void_type(const basic_void_type& other) noexcept;
46 
50  basic_void_type& operator = (const basic_void_type& v) noexcept;
54  bool operator ==(const basic_void_type& v) const noexcept;
58  bool operator !=(const basic_void_type& v) const noexcept;
59  };
60 
61  template <class ...ts>
62  struct make_void { using type = basic_void_type; };
63 
64  template <class ...ts>
65  using void_t = typename make_void<ts ...>::type;
66 }
67 
68 #endif // __MINILIB_VOID_TYPE_H__
A dummy class with value-type semantics, mostly useful as a template argument.
Definition: mn_void.hpp:30
bool operator==(const basic_void_type &v) const noexcept
Will return always true due to Voids having no members.
Definition: mn_void.cpp:31
basic_void_type & operator=(const basic_void_type &v) noexcept
Assigns another void.
Definition: mn_void.cpp:26
bool operator!=(const basic_void_type &v) const noexcept
Will return always false due to Voids having no members.
Definition: mn_void.cpp:37
basic_void_type()
Construct the void type.
Definition: mn_void.cpp:22
~basic_void_type()
Deconstrut the void type.
Definition: mn_void.cpp:24
struct mn::memory::detail::ptr_difference type
Definition: mn_allocator_typetraits.hpp:25
typename make_void< ts ... >::type void_t
Definition: mn_void.hpp:65
Definition: mn_void.hpp:62