草庐IT

BOOST_STRINGIZE

全部标签

c++ - 仅在调试时启用 Boost.Log

我需要一个用于调试目的的记录器,我正在使用Boost.Log(1.54.0,在boost.org主页上有一个补丁)。没关系,我已经创建了一些像这样的宏:#defineLOG_MESSAGE(lvl)BOOST_LOG_TRIVIAL(lvl)现在这是一种仅在Debug模式下在BOOST_LOG_TRIVIAL(lvl)中扩展LOG_MESSAGE(lvl)而在发布时忽略的方法吗?例如:LOG_MESSAGE(critical)编辑我的第一次尝试是创建一个空流...我认为在Release模式下编译器会优化它...#if!defined(NDEBUG)#include#defineLOG_

c++ - Boost.Asio 段错误,不知道为什么

这是我的Boost.Asio项目中基于示例的SSCCE。我花了大约一个小时来追踪这个错误:#include#include#includeclassConnection{public:Connection(boost::asio::io_service&io_service):socket(io_service){}private:boost::asio::ip::tcp::socketsocket;};classServer{public:Server():signal_monitor(io_service){signal_monitor.add(SIGINT);signal_mon

c++ - Boost::file_system:检查错误代码

虽然我使用的是C++11,但这个问题与boost相关,因为我正在处理来自boost::file_system的错误。在以下情况下:try{//Ifp2doesn'texists,canonicalthrowsanexception//ofNo_such_file_or_directorypathp=canonical(p2);//Othercode}catch(filesystem_error&e){if(eistheno_such_file_or_directoryexception)custom_message(e);}//othercatchs}如果我在抛出所需的异常(no_su

c++ - 什么是分阶段 boost 库?

在尝试构建thriftc++库时,我在指定--with-boost选项后遇到了以下错误。Ifyouhaveastagedboostlibrary(stillnotinstalled)pleasespecify$BOOST_ROOTinyourenvironmentanddonotgiveaPATHto--with-boostoption.我查看了boost文档(我不太熟悉),但没有找到术语stagedboostlibrary的良好定义。我看到括号内的(stillnotinstalled),但是有很多状态是一个库可以属于notinstalled的类别。当我第一次下载boost时,我运行.

c++ - 如何序列化 boost::dynamic_bitset?

如何使用boost::dynamic_bitset成员序列化一个类?#include#include#include#include#includeclassA{friendclassboost::serialization::access;boost::dynamic_bitsetx;templatevoidserialize(Archive&ar,constunsignedint){ar&x;}};intmain(){Aa;std::stringstreamss;boost::archive::text_oarchiveoa(ss);oa编译报错(boost1.57)Infilei

c++ - Q_DECLARE_METATYPE 一个 boost::multi_array

我正在尝试使用Qt的信号和槽机制传递表示为boost::multi_array的多维数组。我尝试使用以下代码段声明元类型:Q_DECLARE_METATYPE(boost::multi_array)但是我得到以下编译错误(在MSVC2015上):path\to\project\metatypes.h(7):errorC2976:'boost::multi_array':toofewtemplatearguments..\..\ml_project\boost-libs\include\boost/multi_array.hpp(111):note:seedeclarationof'bo

c++ - 使用 boost::karma 格式化纬度/经度字符串

我需要将double值格式化为具有非常特定格式的坐标字符串,"DDMMSS.SSX"其中:“DD”是完整的学位“MM”是完整的分钟数"SS.SS"是带小数的秒数“X”是“N”或“S”,具体取决于半球字段需要用零填充。不能接受空格。格式示例如下:47.2535==>"471512.45N"-0.123345==>"000724.04S"我已经设法创建了以下程序来完成这项工作。但是我有一些问题:locls规则是否有更优雅的方式?它的目的是将绝对值存储到局部变量value中。是否有(希望更优雅)访问fabs()函数的方法?在我看来,对_1的赋值(_1=_val等)是不必要的,因为我在局部变量

c++ - boost::accumulators::rolling_mean 返回不正确的平均值

环境:VS2013,Boost1.58我写了一些东西,为Boost的累加器提供了一个更友好的界面,它可用于在窗口上投影总和,并计算窗口上的实际滚动平均值。在插入将VS2013作为我们的主要编译器的过程中,此类的单元测试之一开始失败。剥离层,我把它缩小到这个最小的例子:#include#include#includenamespaceba=boost::accumulators;namespacebt=ba::tag;typedefba::accumulator_set>MeanAccumulator;intmain(){MeanAccumulatoracc(bt::rolling_wi

c++ - Boost::Test:编译并运行一个 "hello world"程序

我正在尝试运行一个虚拟的Boost.test“helloworld”程序。我找到了文档here和there但显然我缺少了一些东西......这是我所做的:第1步:我安装了依赖项sudoaptitudeinstalllibboost-test-dev它安装头文件(libboost-test1.54-dev)和二进制文件(libboost-test1.54.0)。第二步:创建要编译的源文件我有一个名为test.cpp的文件,其中包含:#defineBOOST_TEST_MODULEconst_stringtest#include//EOF正如officialtutorial中所推荐的那样第

c++ - 在 C++ 源代码中包含相关的 Boost 库(使用 Visual Studio)

我有一个正在(为学校)工作的项目,我正在挖掘Boost库的解决方案。我需要一些方法来将所需的Boost源代码与我的应用程序一起分发,以便可以在不在系统上安装库进行编译的情况下对其进行编译。(学校电脑什么都没有,学校去年刚装了CVS,但是有VS2005)注意:我在Vista上使用VisualStudio2005。我的系统上有Boost1.34.1我使用了automaticinstaller.我遇到的文档说了一些关于使用BCP命令的内容,但该命令似乎没有复制任何内容。(我使用绝对路径调用BCP,所以我最终不会调用错误的命令。)编辑:我正在尝试使用RegEx库。编辑:我用于BCP的命令是:"