小编Rup*_*nes的帖子

将boost :: optional与boost :: adapters :: indirected一起使用

我正在尝试编译以下代码:

#include <iostream>
#include <iterator>
#include <vector>

#include <boost/assign/std/vector.hpp>
#include <boost/optional.hpp>
#include <boost/range/adaptor/indirected.hpp>
#include <boost/range/algorithm/copy.hpp>

int main( int argc, char ** argv )
{
  using namespace boost::assign;
  using boost::adaptors::indirected;

  std::vector<boost::optional<unsigned> > values;
  values += 1u,2u,3u;
  boost::copy( values | indirected, std::ostream_iterator<unsigned>( std::cout, " " ) );
  std::cout << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

但是,我得到了一些错误,例如没有命名的类型element_typeboost::optional<unsigned>.该参考页页,但是,说,单前提条件是存在operator*()一元函数.有没有办法让它发挥作用?

c++ boost boost-optional

9
推荐指数
1
解决办法
1143
查看次数

稀疏酉矩阵的最佳C++矩阵库

我正在寻找一个好的(在最好的情况下积极维护)C++矩阵库.因此它应该是模板化的,因为我想使用复数的有理数作为数字类型.我正在处理的矩阵主要是稀疏和单一的.

你能否建议图书馆,并给出一个小解释,为什么要使用它们,因为我知道如何找到它们,但我无法真正决定什么适合我,因为我错过了它们的经验.

编辑:

我正在处理的主要操作是矩阵乘法,带矢量kronecker乘积的标量乘法.矩阵的大小是指数级的,我想至少能够处理高达1024x1024个条目的矩阵.

c++ matrix sparse-matrix lapack umfpack

8
推荐指数
1
解决办法
1万
查看次数

在emacs中将键映射指定给派生模式

如何在emacs中将键盘映射分配给派生模式(我正在使用该define-derived-mode功能).有一个derived-mode-set-keymap功能,但没有示例或良好的文档.

emacs keymapping mode

6
推荐指数
1
解决办法
431
查看次数

结合boost :: lexical_cast和std :: transform

我想写这样的东西,无法编译:

std::vector<A> as;
std::vector<B> bs( as.size() );
std::transform( as.beginn(), as.end(), bs.begin(), boost::lexical_cast<B> );
Run Code Online (Sandbox Code Playgroud)

但这不起作用,所以我创建了一个函数来为我做这个:

template<typename Dest>
struct lexical_transform
{
    template<typename Src>
    Dest operator()( const Src& src ) const
    {
        return boost::lexical_cast<Dest>( src );
    }
};
Run Code Online (Sandbox Code Playgroud)

有更简单的方法吗?

c++ boost stl lexical-cast

6
推荐指数
1
解决办法
2152
查看次数

在boost :: bind中区分具有相同名称的const和非const方法

当我使用boost::bind声明为const和非const的方法名称时,我会遇到模糊错误,例如

boost::bind( &boost::optional<T>::get, _1 )
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

c++ boost boost-bind

5
推荐指数
1
解决办法
1528
查看次数

在boost :: python中公开boost :: scoped_ptr

我收到一个编译错误,说该scoped_ptr私有的复制构造函数与以下代码片段:

class a {};

struct s
{
  boost::scoped_ptr<a> p;
};

BOOST_PYTHON_MODULE( module )
{
  class_<s>( "s" );
}
Run Code Online (Sandbox Code Playgroud)

此示例适用于shared_ptr.如果有人知道答案那就太好了.谢谢

c++ boost smart-pointers boost-python

4
推荐指数
1
解决办法
301
查看次数

在Xtend集合中组合过滤器和映射

给定一些可迭代变量v和类型T我经常发现自己编写代码如

v.filter[it instanceof T].map[it as T]

是否存在一些帮助程序在一个步骤中执行相同的功能?

xtend

4
推荐指数
1
解决办法
1371
查看次数

在一行中创建一个带前缀的序列

鉴于初始化的变量unsigned a,unsigned bb > astd::vector<std::string> strings大小b-a.我如何填充strings元素,例如"x3" "x4" "x5" "x6"(在案例a=3和中b=7)任意ab一个C++命令(意味着一个分号:))?

c++ boost stl

3
推荐指数
2
解决办法
355
查看次数

将成员函数添加到Boost.Variant

在我的C++库中,我有一个类型boost::variant<A,B>和许多算法将此类型作为输入.而不是成员函数我在这种类型上有全局函数,比如void f( boost::variant<A,B>& var ).我知道这也可以通过模板实现,但这不适合我的设计.

这种编程风格我很好:

boost::variant<A, B> v;
f( v );
Run Code Online (Sandbox Code Playgroud)

但是这个库的一些用户不习惯它,并且由于Boost.Variant概念被类型定义隐藏,他们感觉就像在调用v.f().

为了实现这一点,我可以想到两种可能性:1)重写boost::variant和2)重新实现boost::variant和添加我自己的成员函数.我不确定这些想法是否合适.你能帮我个忙吗?还有其他可能吗?

c++ boost boost-variant

3
推荐指数
1
解决办法
1619
查看次数