【问题标题】:boost::variate_generator syntax errorboost::variate_generator 语法错误
【发布时间】:2016-12-24 15:35:22
【问题描述】:

我可以就我遇到的问题寻求一些帮助。 我有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>C:\boost\boost_1_61_0\boost/random/variate_generator.hpp(59): 错误 C2039: 'result_type' : 不是 'boost::math::students_t_distribution>' 1> ....\test.cpp(183) : 请参阅正在编译的类模板实例化 'boost::random::variate_generator' 的引用 1>C:\boost\boost_1_61_0\boost/random/variate_generator.hpp(59): 错误 C2146: 语法错误: 缺少';'在标识符“result_type”之前 1>C:\boost\boost_1_61_0\boost/random/variate_generator.hpp(59):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数 1>C:\boost\boost_1_61_0\boost/random/variate_generator.hpp(59): error C2602: 'boost::random::variate_generator::result_type' 不是'boost::random: :variate_generator' 1> C:\boost\boost_1_61_0\boost/random/variate_generator.hpp(59) : 见 'boost::random::variate_generator::result_type' 的声明 1>C:\boost\boost_1_61_0\boost/random/variate_generator.hpp(59): error C2868: 'boost::random::variate_generator::result_type' : using-declaration 的非法语法;预期的限定名

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

【问题讨论】:

  • 你是如何列出你的包含的?与#include &lt;boost/random.hpp&gt; #include &lt;boost/math/distributions/students_t.hpp&gt; 我没有错误。 MS v140 编译器。

标签: c++ boost random compiler-errors


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    相关资源
    最近更新 更多