#include #include #include #include #define N 10 template void printTypes(Ts...) { std::puts(__PRETTY_FUNCTION__); } int main() { int dummy[N+1]; auto a = pfor::Operand(dummy); auto b = pfor::Operand(dummy); auto c = pfor::Operand(dummy); auto d = pfor::Operand(dummy); auto e = pfor::Operand(dummy); auto f = pfor::Operand(dummy); pfor::Index i; auto expr = ( a[i] = a[i] * b[i], c[i] = c[i+pfor::ctv<1>] + d[i], b[i] = b[i] + 1, d[i] = c[i]^e[i], f[i] = 2 * f[i] ); using CommaSplittedExpr = pfor::expr::SplitComma; using ExprInfo = pfor::expr::ExpressionInfo; using Clusters = typename pfor::impl::ClustersGenImpl, ExprInfo>::type; using ClustersIds = pfor::ClustersExpressionIds; using Type = pfor::PackSort; printTypes(expr); std::puts("--"); printTypes(); std::puts("--"); printTypes(); std::puts("--"); printTypes(); std::puts("--"); printTypes(); }