effective way to select last parameter of variadic template

后端 未结 8 886
温柔的废话
温柔的废话 2020-12-01 12:37

I know how to select first parameter of variadic template:

template< class...Args> struct select_first;
template< class A, class ...Args> struct          


        
8条回答
  •  春和景丽
    2020-12-01 13:34

    A pretty dumb approach would be to write a helper class and specialize for each number of parameters (up to some limit of your choice). You could use preprocessor for that.

    template
    struct select_last_helper;
    
    template
    struct select_last_helper {
        using type = T1;
    };
    
    template
    struct select_last_helper {
        using type = T2;
    };
    
    template
    struct select_last_helper {
        using type = T3;
    };
    
    template
    struct select_last {
        using type = typename select_last_helper::type;
    };
    

    O(1) template instantiations :)

提交回复
热议问题