28 lines
535 B
C
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
|