草庐IT

boost-uuid

全部标签

c++ - 我可以在成员函数上使用 boost::enable_if 吗?

我正在写一个模板类,我想允许一个额外的方法只存在于特定的模板类型中。目前该方法适用于所有模板类型,但会导致所有其他类型的编译错误。复杂的是它是一个重载的operator()。不确定我想做的事情在这里是否真的可行。这是我现在拥有的:templateclassMyClass:publicBASE{public:typenameT&operator()(constUtility1&foo);typenameTconst&operator()(constUtility2&foo)const;};我想要T&版本始终可用,但Tconst&版本仅在Utility2时可用已验证。现在,这两种方法都存在

C++/boost : Writing a more powerful sscanf replacement

我想用C++编写一个函数来替换C的sscanf,它将匹配分配给迭代器。基本上,我想要这样的东西:strings="0.56hello";std::vectorany_vector;sscanv(s,"%f%i%s",any_vector);cout(any_vector[0]);cout(any_vector[2]);具体细节可能有所不同,但您明白了。有什么实现想法吗?到目前为止的选项以及目前的问题:std::istringstream:没有用于匹配常量表达式的操纵器Boost.Regex:不确定这是否行得通,而且看起来比需要的要复杂得多Boost.Spirit:不要认为这适用于动态生

c++ - 如何使 boost::serialization 反序列化更快?

我使用boost::serialization来保存包含此数据的对象:structContainer{structSmallObject{structCustomData{unsignedfirst;floatsecond;};std::vectorcustomData;//mySmallerObjects;//序列化代码看起来是这样的(这是侵入式的,为了可读性我没有写上面的函数声明):templatevoidContainer::SmallObject::CustomData::serialize(Archive&ar,unsigned/*version*/){ar&first;ar

c++ - boost::threads 示例和堆损坏消息

我是boost::threads的新手,我阅读了文档,但在实践中应用它时遇到了一些问题,也许你可以帮忙?首先,我花时间编写了一个自包含的代码list,它演示了我尚不能理解的2种行为......该程序允许用户发出3个不同的命令,任务[名称]信息退出目的是task将在新线程上启动一些工作,但在执行工作时返回到命令提示符。用户可以发出info命令来找出哪些任务已经完成,哪些还没有。我使用的是双核Win7机器和VisualStudio2008Express。问题1>发出命令,taskp1p2p3,开始运行3个任务。这可以通过发出info来检查。几秒钟后工作完成,但由于某种原因,完成标志并不总是

c++ - 指向动态分配的 boost multi_array 中的类的指针,而不是编译

我对使用Boost的C++还很陌生。我希望类“world”的对象有一个名为“chunk”且类型为“octreenode”的数组。以前我有一个普通的一维数组,效果很好。现在,我正在尝试使用具有Boost的multi_array功能的3D数组,但我真的不确定自己做错了什么。简化代码:classworld{public:typedefboost::multi_arrayplanetchunkarray;//aboost_multiforchunkstypedefplanetchunkarray::indexindex;planetchunkarray*chunk;world(doublex,

c++ - 如何使用 VS2013(64 位)编译 Boost

我正在使用以下命令编译Boost1.55beta1:b2--toolset=msvc-12.0architecture=x86address-model=64stage结果是一堆这样的错误:errorC3861:'assert_not_arg':identifiernotfound有一个假定的补丁列表可以使boost与VS2013一起工作here,但我不知道如何使用它们。显然asimilarproblemisdocumentedhere,但我想知道是否有人成功地为VS2013构建了Boost64位(我不介意使用旧版本的boost,但他们似乎不支持MSVC12.0编译器)。

c++ - boost asio 套接字是否有适当的 RAII 清理

我尝试查看源代码,但无法浏览那么多模板代码。基本上:这是文档所说的(对于close()):RemarksForportablebehaviourwithrespecttogracefulclosureofaconnectedsocket,callshutdown()beforeclosingthesocket.我可以手动完成,但如果可能的话,依靠RAII会更好。因此,如果套接字超出范围,我是否需要对其调用shutdown()和close(),或者它会自动完成? 最佳答案 可以依靠套接字使用RAII执行适当的清理。当一个IO对象,比如

c++ - 为什么一些 Boost 函数不需要命名空间前缀

考虑这段代码(或liveexample):#include#include#includeusingstd::cout;intmain(){boost::adjacency_listg;add_edge(0,1,g);add_edge(1,2,g);for(autov:make_iterator_range(vertices(g))){cout为什么函数add_edge、make_iterator_range、vertices、degree和adjacent_vertices来自Boost库的没有boost::命名空间前缀的工作?最让我费解的是,根据情况,有时确实需要前缀。Hereis

c++ - 在 Windows 上获取 boost::filesystem::path 作为 UTF-8 编码的 std::string

我们将路径表示为boost::filesystem::path,但在某些情况下,其他API期望它们为constchar*(例如,打开一个数据库使用SQLite文件)。来自thedocumentation,path::value_type在Windows下是一个wchar_t。据我所知,Windowswchar_t是2个字节,UTF-16编码。有一个string()返回std::string的native观察者,同时说明:Ifstring_typeisadifferenttypethanString,conversionisperformedbycvt.cvt被初始化为默认构造的code

c++ - boost::bind 与空函数指针

如果嵌入在boost::bind返回对象中的函数指针是NULL/nullptr/0,我需要采取行动而不是调用它。如何确定对象是否包含空函数指针?附录我不相信我可以使用和比较boost::function,因为boost::bind返回对象在模板函数中与不同的调用签名一起使用.简化示例:templateRetvaldo_stuff(BROfunc,enumFallbackfallback){if(func==NULL){returndo_fallback(fallback);}else{returnuse_retval(func());}}do_stuff(boost::bind(Fun