相关疑难解决方法(0)

模板元组 - 在每个元素上调用一个函数

我的问题在于代码:

template<typename... Ts>
struct TupleOfVectors {
  std::tuple<std::vector<Ts>...> tuple;

  void do_something_to_each_vec() {
    //Question: I want to do this:
    //  "for each (N)": do_something_to_vec<N>()
    //How?
  }

  template<size_t N>
  void do_something_to_vec() {
    auto &vec = std::get<N>(tuple);
    //do something to vec
  }
};
Run Code Online (Sandbox Code Playgroud)

c++ templates tuples c++11

37
推荐指数
5
解决办法
2万
查看次数

如何反转元组类型中元素类型的顺序?

如何反转元组中的类型?例如,我想reverse_tuple<std::tuple<int, char, bool>>::type成为std::tuple<bool, char, int>.我尝试了以下但是没有用.我做错了什么?

#include <type_traits>
#include <tuple>

template <typename... Ts>
struct tuple_reverse;

template <typename T, typename... Ts>
struct tuple_reverse<std::tuple<T, Ts...>>
{
    using type = typename tuple_reverse<
                            std::tuple<
                               typename tuple_reverse<std::tuple<Ts..., T>>::type
                            >
                          >::type;
};

template <typename T>
struct tuple_reverse<std::tuple<T>>
{
    using type = std::tuple<T>;
};

int main()
{
    using result_type = std::tuple<int, bool, char>;
    static_assert(
        std::is_same<
            tuple_reverse<var>::type, std::tuple<char, bool, int>
        >::value, ""
    );
}
Run Code Online (Sandbox Code Playgroud)

这是我的错误:

prog.cpp: In instantiation of ‘struct tuple_reverse<std::tuple<char, int, bool> >’:
prog.cpp:15:34: …

c++ tuples variadic-templates c++11

18
推荐指数
2
解决办法
2405
查看次数

标签 统计

c++ ×2

c++11 ×2

tuples ×2

templates ×1

variadic-templates ×1