#ifndef PFOR_PFOR_EXPRESSION_ASEXPRESSION_H #define PFOR_PFOR_EXPRESSION_ASEXPRESSION_H #include "expression.h" namespace pfor { namespace expr { /** * @brief turn into Expression if not already one */ template struct AsExpressionImpl; template struct AsExpressionImpl>> { using type = T; }; template struct AsExpressionImpl>> { using type = Constant; }; template using AsExpression = typename AsExpressionImpl::type; } template expr::AsExpression> xpr(T&& v) { return {std::forward(v)}; } } #endif