pfor/src/pfor/expression/tuple.h

28 lines
535 B
C++

#ifndef PFOR_PFOR_EXPRESSION_TUPLE_H
#define PFOR_PFOR_EXPRESSION_TUPLE_H
#include "expression.h"
namespace pfor {
namespace expr {
template<typename> struct ExpressionsTupleImpl;
template<typename... Ts>
struct ExpressionsTupleImpl<Expression<op::Comma, Ts...>> {
using type = decltype(std::declval<Expression<op::Comma, Ts...>>().operands);
};
template<typename E>
struct ExpressionsTupleImpl {
using type = std::tuple<E>;
};
template<typename E>
using ExpressionsTuple = typename ExpressionsTupleImpl<E>::type;
}
}
#endif