boost :: variate_generator语法错误

时间:2016-12-24 15:35:22

标签: c++ boost random compiler-errors

我可以请求帮助解决我遇到的问题。 我有typedef

 typedef boost::random::mt19937 my_rng;
 typedef boost::math::students_t my_st;

然后是以下内容:

    my_rng rng(0) ;
    my_st  st(3);
    boost::random::variate_generator<my_rng&, my_st > noise(rng, st);

我得到的编译错误是(我在Windows 7中使用visual studio 13):

1&gt; C:\ boost \ boost_1_61_0 \ boost / random / variate_generator.hpp(59):错误C2039:&#39; result_type&#39; :不是会员 &#39;的boost ::数学:: students_t_distribution&GT;&#39; 1 GT; .... \ test.cpp(183):参见类模板实例化&#39; boost :: random :: variate_generator&#39;被编译 1&gt; C:\ boost \ boost_1_61_0 \ boost / random / variate_generator.hpp(59):错误C2146:语法错误:缺少&#39 ;;&#39;在标识符&#39; result_type&#39;之前 1&gt; C:\ boost \ boost_1_61_0 \ boost / random / variate_generator.hpp(59):错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int 1&gt; C:\ boost \ boost_1_61_0 \ boost / random / variate_generator.hpp(59):错误C2602:&#39; boost :: random :: variate_generator :: result_type&#39;不是&#39; boost :: random :: variate_generator&#39;的基类的成员。 1 GT; C:\ boost \ boost_1_61_0 \ boost / random / variate_generator.hpp(59):参见&#39; boost :: random :: variate_generator :: result_type&#39;的声明 1&gt; C:\ boost \ boost_1_61_0 \ boost / random / variate_generator.hpp(59):错误C2868:&#39; boost :: random :: variate_generator :: result_type&#39; :using声明的非法语法;预期的合格名称

有人可以给我一些指示如何解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:0)

boost:math::students_t不符合Random Distribution的概念。请改用boost::random::student_t_distribution