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声明的非法语法;预期的合格名称
有人可以给我一些指示如何解决这个问题。提前谢谢。
答案 0 :(得分:0)
boost:math::students_t
不符合Random Distribution
的概念。请改用boost::random::student_t_distribution
。