草庐IT

c++ - BGL dijkstra_shortest_path 算法方法不接受我的颜色图外部属性

我一直在尝试让boostgraphlib的dijkstra_shortest_paths编译大约一个星期,现在无济于事。我正在尝试为模板化方法所需的不同命名参数使用外部属性映射。我的图使用顶点和边的捆绑属性,我已经能够成功构建图。我将向您展示我的代码://vertexbundledpropertiesstructBusStop{unsignedintid;//usedforcreatingvertexindexpropertymapstringname;Location*pLocation;};//edgebundledproperties:structRoute{stringrout

c++ - boost ASIO 并发度

我正在学习使用BoostASIO。这是从chatexample复制的一些代码与BoostASIO文档一起提供,typedefstd::dequechat_message_queue;classchat_client{public:chat_client(boost::asio::io_service&io_service,tcp::resolver::iteratorendpoint_iterator):io_service_(io_service),socket_(io_service){boost::asio::async_connect(socket_,endpoint_iter

c++ - boost::optional<std::string> 和来自 char[] 的隐式构造函数

我已经习惯了通过让编译器找出所涉及的魔法来以下列方式初始化std::stringsstd::stringmy_string="hello";以下将不起作用,因为两种类型之间没有显式转换:boost::optionalmy_optional_string="hello";但这确实有效:boost::optionalmy_optional_string=std::string("hello");现在,难道没有办法菊花链隐式调用的单参数构造函数以允许第二种形式吗?我问的原因(虽然我不想用细节打扰你)是有一大堆类需要填充可选成员。必须显式输入所有内容似乎是一种负担(我不太担心自己,但我正在开发

c++ - 是否有 auto_ptr 的替代品可以与 c++11 中的 boost ptr_map 一起使用

在c++11中,auto_ptr已弃用,取而代之的是更合理的unique_ptr。唉,如果你使用boost::ptr_map,auto_ptr就完成了一个非常方便的用途:std::auto_ptrpLayer(newLayer());mRawLayerPtrMap.insert(layerName,pLayer);是否有可能使用与c++11类似的东西。这个我知道Layer*pLayer=newLayer();mFusedLayers.insert(fusedLayerName,pLayer);有效,但auto_ptr在一些更复杂的场景中有它的优点。是否有适用于C++11的替代品?

c++ - boost::asio 中的未经请求的消息使应用程序崩溃,没有 SSL 它工作正常,为什么?

我想通过SSL连接发送未经请求的消息。这意味着服务器不是基于客户端的请求发送消息,而是因为发生了客户端需要知道的某些事件。我只是使用来自boost站点的SSL服务器示例,添加了一个在10秒后发送“hello”的计时器,在计时器到期之前一切正常(服务器回显的一切),也收到了“hello”,但是之后,应用程序在下次向服务器发送文本时崩溃。对我来说更奇怪的是,当我禁用SSL代码时,使用普通套接字并使用telnet执行相同的操作,它工作正常并且继续正常工作!!!我第二次遇到这个问题,我真的不知道为什么会这样。下面是我为演示问题而更改的全部源代码。在没有SSL定义和使用telnet的情况下编译它

c++ - Boost -gd 库文件

构建boost库(这样我就可以使用文件系统命名空间)后,我在stage/lib文件夹中找到了以下名称中包含文件系统的文件:libboost_filesystem-vc100-mt-1_51(838kb)libboost_filesystem-vc100-gd-mt-1_51(4210kb)注意第二个中的-gd。我还在括号中输入了尺寸。那么,有什么区别呢?我使用哪一个? 最佳答案 -gd用于库的调试版本。使用-gd-mt构建调试配置,使用-mt构建发布配置。 关于c++-Boost-gd库

c++ - 在对象 vector 上调用成员函数

给定一个vector,其中Object有一个函数run(),有没有办法调用run()在for_each,仅使用标准函数/模板?请注意run()不是静态函数,它实际上应该转换被引用的对象(当然我的小例子不是这样)我知道boost::lambda方式classObject{public:intrun(){/*changeobjectstate*/}};vectorv(10);for_each(v.begin(),v.end(),bind(&Object::run,_1));但我很好奇这是否是一种标准(非Cxx11)方法。 最佳答案 有(

c++ - 在容器中存储 boost::function 对象

我有一个KeyCallbackvector:typedefboost::functionKeyCallback我用它来存储按下键盘按钮时的所有监听器。我可以使用for_each添加它们并将事件分派(dispatch)给所有回调,但我不知道如何从我的vector中实际删除特定的KeyCallback签名。例如我想要这样的东西:voidInputManager::UnregisterCallback(KeyCallbackcallback){mKeyCallbacks.erase(std::find(mKeyCallbacks.begin(),mKeyCallbacks.end(),cal

c++ - 为什么 shared_ptr<void> 而不是 shared_ptr<HANDLE>

基于http://en.highscore.de/cpp/boost/smartpointers.html#smartpointers_shared_pointer#include#includeintmain(){boost::shared_ptrh(OpenProcess(PROCESS_SET_INFORMATION,FALSE,GetCurrentProcessId()),CloseHandle);SetPriorityClass(h.get(),HIGH_PRIORITY_CLASS);}问题:为什么h定义为boost::shared_ptr而不是boost::shared_

c++ - boost::msm - 一种获取状态的字符串表示形式(即 getName)的方法?

我正在尝试使用boost::msm库在我的代码中创建一个状态机。有谁知道获取状态的字符串名称(不是intid)的方法?我正在尝试将其用于日志记录/调试目的。例如在no_transition函数中,我得到了状态ID,但我试图得到一个名称以便于阅读:templatevoidno_transition(Eventconst&e,Fsm&fsm,intstateId){//ThisiswhatI'mtrying:autostate=fsm.get_state_by_id(stateId);//Thisreturnsaboost::msm::front::default_base_state.A