【问题标题】:Using a boost::numeric::ublas::vector directly as function argument without initialization直接使用 boost::numeric::ublas::vector 作为函数参数,无需初始化
【发布时间】:2017-05-10 10:18:50
【问题描述】:

我正在尝试一些我认为相对简单但不知如何去做的事情。我有一个函数,它作为参数接受一个 boost::numeric::ublas::vector,而不是必须事先声明向量我希望能够在函数内将它声明为右值,这可能与 boost: :numeric::ublas::vector?

现在我这样做

 boost::numeric::ublas::vector<double> point(3);
 point <<= 1, 2, 3;
 test(point);

我想做这样的事情,这对于带有列表初始化的普通 std::vectors 是可能的。

 test( {1,2,3} )

这种方式可以用 boost::numeric::ublas::vector 实现吗?

【问题讨论】:

    标签: c++ vector boost


    【解决方案1】:

    引用the uBLAS FAQ:

    uBLAS 已有 10 多年的历史,错过了 C++11 的所有新内容。

    所以似乎不太可能添加列表初始化。

    如果您需要使用 uBLAS 并希望进行列表初始化,我建议为此实现一个辅助函数。

    【讨论】:

    • 感谢您的回答,我并不特别想要列表初始化,我只是希望能够调用具有提升向量的函数作为函数参数中的内联创建的右值。
    • 或者你是说这只能通过列表初始化来完成,所以原则上不能在旧版本的C++中完成?
    • 我建议为此编写一个小辅助函数。 Here 是一个例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多