#include #include #include #include #include #include #include #include #include #include #include #include #include #include void example_temp_accu(){ using namespace boost; using namespace boost::accumulators; typedef mpl::size_t<0> id0; typedef mpl::size_t<1> id1; typedef double value_type; typedef tag::accu_a a_type; typedef tag::accu_b b_type; typedef accumulator_set< value_type, stats< b_type > > set_type; typedef set_type::accumulators_mpl_vector::type wrapped_features; typedef mpl::transform< wrapped_features, accumulators::detail::feature_tag >::type features; BOOST_STATIC_ASSERT(( mpl::equal_to< mpl::size_t<2>, mpl::size::type >::value )); typedef mpl::back::type actual_back; BOOST_STATIC_ASSERT(( is_same::value )); set_type set( ( kwd::value = 0.9 ) ); //supposed to set b.x_ = a.x_; std::cout << "a.x_=" << extract_result(set) << std::endl; std::cout << "b.x_=" << extract_result(set) << std::endl; set(0); // sets b.x_ = a.x_ again std::cout << "b.x_=" << extract_result(set) << std::endl; //Output: //a.x_=0.9 //b.x_=0.1 // expects 0.9 //b.x_=0.9 }