how to use C++11 integral_constant::value_type() -
how to use C++11 integral_constant::value_type() -
i learning utilize c++ 11 type_traits, in integral_constant, there function value_type();
i tried got error:
typedef std::integral_constant<int, 1> one_t; one_t one_o; one_o.value_type();
../src/main.cc:13:9: error: cannot refer type fellow member 'value_type' in 'one_t' (aka 'integral_constant') '.' one_o.value_type();
well function value_type()
not function name. indeed, definition of integral_constant
looks this:
template <class t, t v> struct integral_constant { // ... typedef t value_type; constexpr operator value_type() const noexcept { homecoming value; } };
notice value_type
typedef
template parameter t
(int
, in op's example). in add-on there's conversion operator converts integral_constant<t, v>
t
. it's implicitly called this
int = one_o; // same int = 1;
to phone call explicitly need utilize operator
keyword , right type this:
one_o.operator int();
which, typedef
member, equivalent to
one_o.operator one_t::value_type();
c++11
Comments
Post a Comment