std::nontype, std::nontype_t

From cppreference.com
< cpp‎ | utility
Utilities library
Function objects
Function invocation
(C++17)(C++23)
Identity function object
(C++20)
Transparent operator wrappers
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Old binders and adaptors
(until C++17*)
(until C++17*)
(until C++17*)
(until C++17*)
(until C++17*)  
(until C++17*)
(until C++17*) (until C++17*) (until C++17*) (until C++17*)
(until C++20*)
(until C++20*)
(until C++17*)(until C++17*)
(until C++17*)(until C++17*)

(until C++17*)
(until C++17*) (until C++17*) (until C++17*) (until C++17*)
(until C++20*)
(until C++20*)
Defined in header <utility>
template < auto V >
struct nontype_t { explicit nontype_t( ) = default ; } ;
(1) (since C++26)
template < auto V >
constexpr std:: nontype_t <V> nontype { } ;
(2) (since C++26)
1) The class template std::nontype_t can be used in the constructor's parameter list to match the intended tag.
2) The corresponding std::nontype instance of (1) is a disambiguation argument tag that can be passed to the constructors of std::function_ref to indicate that the contained object should be constructed with the value of the non-type template parameter V

Template parameters

V - non-type template parameter of a structural type.

See also

(C++26)
non-owning wrapper of any callable object
(class template)