Так что я новичок в повышении MPL, и я не знаю, как использовать его со стандартными типами.
Я хочу метафункцию, которая охватывает этот тип:
std::tuple<T0, T1, ..., TN>
В это:
std::tuple<
std::function<T0(std::tuple<T0, T1, ...>, std::tuple<T0, T1, ...>)>,
std::function<T1(std::tuple<T0, T1, ...>, std::tuple<T0, T1, ...>)>,
...,
std::function<TN(...)>
>
и кажется, что это можно сделать с помощью transform , но я хочу иметь тип кортежа, а не вектор типов. (На самом деле он не должен использовать MPL, но я думаю, он будет короче?)
Предыстория: в настоящее время я использую совершенно универсальные типы и полагаюсь на весь адский разрыв, если используется неправильно, но я хочу вычислить TupleOfFunctions
для получения правильной ошибки.
template<class TupleOfValues, class TupleOfFunctions>
void f(TupleOfValues v, TupleOfFunctions fun)