9 enum class Operation:
int { as_const_lvalue_ref, as_lvalue_ref, as_move };
12 std::unique_ptr<int> m_member;
16 m_member{
std::make_unique<int>(value) } { }
22 template<auto Opr = Operation::as_const_lvalue_ref>
28 return static_cast<const std::unique_ptr<int>&
>(this->m_member);
32 return static_cast< std::unique_ptr<int>&
>(this->m_member);
38 return std::move(this->m_member);
51 decltype(
auto) p1 = dummy.get_member();
54 <<
"\nits value is " << *p1 <<
endl;
56 decltype(
auto) p2 = dummy.get_member<lvalue_ref>();
59 <<
"\nits value is " << *p2 <<
endl;
63 auto p3 = dummy.get_member<as_move>();
66 <<
"\nits value is " << *p3 <<
endl;
93 auto p4 = p3.release();
void test_advanced_return_type()
decltype(auto) get_member()
Stream output operators << are implemented.
#define Tpf_GetTypeCategory(instance_arg)
A macro that returns instance_arg's type category string name.