template<typename U> void aug ## OP_TOKEN (U const & arg, typename std::enable_if<!std::is_scalar<U>::value, int>::type = 0) { \
typedef typename value_type<B>::type self_value_type; \
typedef
typename value_type<U>::type arg_value_type;
\ transform(boost::function<self_value_type(self_value_type, arg_value_type)>( OP_STD <self_value_type, arg_value_type, self_value_type>()), arg); \
B:: OPEQ_NAME (arg); \
} \
template<typename U> void aug ## OP_TOKEN (U const & arg, typename std::enable_if<std::is_scalar<U>::value, int>::type = 0) { \
using alps::numeric:: OP_NAME ; \
typedef typename mean_type<B>::type mean_type; \
generate_jackknife(); \
m_mn_data_is_analyzed = false; \
m_mn_cannot_rebin = true; \
typename std::vector<mean_type>::iterator it; \
for (it = m_mn_bins.begin(); it != m_mn_bins.end(); ++it) \
for (it = m_mn_jackknife_bins.begin(); it != m_mn_jackknife_bins.end(); ++it) \
analyze(); \
B:: OPEQ_NAME (arg); \
} \
mean_result< T > transform(no_prop, const transformer< T > &tf, const InResult &in)
Metafunction returning "mathematical scalar" type for type T.