How to get element from std::tuple by type

后端 未结 3 418
别跟我提以往
别跟我提以往 2020-12-19 11:54

I have a set of classes A, B, C and I want to have access instances of them from generic code by type, f.e

template
newObject()
{
    retur         


        
3条回答
  •  青春惊慌失措
    2020-12-19 12:02

    A simple variadic mixin container does the trick:

    template < typename T > struct type_tuple_value 
    { 
        T value; 
        type_tuple_value ( T&& arg ) : value(std::forward(arg)) {}
    };
    
    template < typename ...T > struct type_tuple : type_tuple_value...
    {
        template < typename ...Args > type_tuple ( Args&&... args ) :
        type_tuple_value(std::forward(args))... {}
        template < typename U > U& get() { return type_tuple_value::value; }
        template < typename U > const U& get() const { return type_tuple_value::value; }
    };
    

    Example

提交回复
热议问题