草庐IT

hit-boosted

全部标签

c++ - CMake 在使用 android-cmake 工具链文件时找不到 Boost 库

我正在尝试为使用Boost库的代码创建一个CMake项目。我想为Android构建它,我正在使用这个项目作为引用:https://code.google.com/p/android-cmake/.我想使用我之前为android构建的Boost静态库,而不是将它们作为要编译的项目的一部分。这是我使用Boost的项目部分的CMakeLists.txt#BOOSTset(BOOST_ROOT/home/neb/workspace/SDLActivityCMAKE/jni/boost)set(Boost_INCLUDE_DIR/home/neb/workspace/SDLActivityCMA

c++ - 如何在 64 位中构建 Boost 1.64?

我运行的是Windows10并在笔记本电脑中安装了VisualStudio2017社区版。我有一些较旧的程序在VS2015中使用64位Boost1.62.0编译得很好。出于一些非常奇怪的原因,我无法找到一种方法来使用VS2017和此命令行从Boost1.64.0(这里是文件系统和计时器)编译任何库:b2--build-dir=..\build_here--with-filesystem--with-timer--address-model=64命令将执行并构建库,但是是32位!!可能出了什么问题?问候,胡安登特 最佳答案 更新我给的

c++ - 如何将 BOOST 包装在单独的命名空间中?

我希望同时将两个版本的BOOST编译到一个项目中。理想情况下,它们应该可以按照以下方式使用:boost_1_36_0::boost::shared_ptrsomeClass=newSomeClass();boost_1_35_0::boost::regexexpression("[0-9]",boost_1_35_0::boost::regex_constants::basic); 最佳答案 我阅读(仔细扫描)了developmentlistdiscussion.没有简单的解决办法。总结:在命名空间声明中包装头文件namespace

c++ - tr1::hash 用于 boost::thread::id?

我开始使用unordered_set来自tr1的类(class)命名空间以boost对普通(基于树的)STL的访问map.但是,我想在boost(boost::thread::id)中存储对线程ID的引用,并意识到这些标识符的API非常不透明,您无法清楚地获得它的哈希值。令人惊讶的是,boost实现了tr1的部分内容(包括hash和unordered_set),但它没有定义能够散列线程ID的散列类。查看boost::thread::id的文档我发现线程ID可以输出到流中,所以我的散列解决方案是这样的:structboost_thread_id_hash{size_toperator()

c++ - 关闭由于 boost 库引起的警告

我正在使用C++、MacOSX、Qt构建应用程序并使用boost库。每次我构建一个项目时,我都会收到一大堆来自boost库本身的警告。如何关闭它们,以便我只能看到我的项目特定的警告和错误? 最佳答案 使用-isystem而不是-I来添加Boostheader以包含路径。此选项意味着将在那里找到的header视为系统header,并抑制源自那里的警告。 关于c++-关闭由于boost库引起的警告,我们在StackOverflow上找到一个类似的问题: https

c++ - boost::spirit::气。如何将内联解析器表达式变成独立的语法,以及如何解包它们生成的元组?

我正在使用QI和Phoenix,我想编写一个小语法来返回4个bool值,这些bool值将用作语义操作中函数调用的参数。我有几个函数需要这些东西,到目前为止我已经使用了这种方法:(qi::_bool>>qi::_bool>>qi::_bool>>qi::_bool)[px::bind(&Bool4Function,spirit::_val,spirit::_1,spirit::_2,spirit::_3,spirit::_4)]虽然它本身没问题,但在所有地方使用它都非常丑陋和令人困惑,即使“使用”命名空间部分也是如此。这就是为什么我想将这个表达式提取到一个独立的语法中。所以我尝试了这个(

c++ - 在 boost::asio 中使用 write() 发送原始数据

我最近决定为我的套接字使用boost::asio,但现在我遇到了一个问题:似乎缺少文档。我想做的是编写一个函数来发送包含以下结构的消息:2个字节的无符号整数(uint16_t)用于操作码所有字节之后的所有字节(灵活数量)是任何类型的数据(转换为void*)。这些数据将根据操作码进行操作例如,如果操作码为1,可能定义为OPCODE_LOGIN,则操作码后面的字节可能包含包含登录信息等的字符串。boolsendMessage(tcp::socket*sock,uint16_topcode,void*data){void*fullData=malloc(sizeof(uint16_t)+si

c++ - 使用 boost spirit (longest_d) 解析 int 或 double

我正在寻找一种将字符串解析为int或double的方法,解析器应该尝试这两种选择并选择与输入流的最长部分匹配的那个。有一个已弃用的指令(longest_d)完全符合我的要求:number=longest_d[integer|real];...既然它已被弃用,还有其他选择吗?如果有必要实现语义操作来实现所需的行为,有人有什么建议吗? 最佳答案 首先,请切换到SpiritV2-多年来它已经取代了经典spirit。其次,您需要确保首选int。默认情况下,double可以很好地解析任何整数,因此您需要改用strict_real_polici

c++ - 共享内存中的 boost::lockfree::queue 出现问题(boost 1.53、gcc 4.7.2/clang 3.0-6ubuntu3)

我在放置boost::lockfree::queue,..>时遇到问题在共享内存中。我需要它,因为我必须能够将超过65535条消息插入队列,而fixed_sized队列限制为65535。以下代码工作正常(但capacity选项暗示fixed_sized):typedefboost::interprocess::allocatorShmemAllocator;typedefboost::lockfree::queue,boost::lockfree::allocator>Queue;m_segment=newboost::interprocess::managed_shared_memo

c++ - 使用 boost::filesystem 时出现链接器错误?

我有以下代码:#include#includeintmain(){constchar*file_path="my_path";std::cout当我构建时出现以下错误:1>Main.obj:errorLNK2019:unresolvedexternalsymbol"classboost::system::error_categoryconst&__cdeclboost::system::system_category(void)"(?system_category@system@boost@@YAAEBVerror_category@12@XZ)referencedinfunction