草庐IT

range-header

全部标签

c++ - 如何将 boost::spirit::lex token 的值从 iterator_range 转换为字符串?

当我尝试从iterator_range转换标记的值时,词法分析器在尝试读取下一个标记时失败。这是包含token定义的token结构:(我不认为这是相关的,但我包括以防万一。)templatestructTokens:boost::spirit::lex::lexer{Tokens();boost::spirit::lex::token_defidentifier;boost::spirit::lex::token_defstring;boost::spirit::lex::token_defboolean;boost::spirit::lex::token_defreal;boost:

c++ - 如何使用 waf 在自定义路径中搜索库/ header ?

我尝试在wafwscript文件中搜索库和header。通常,可以通过以下方式实现:defconfigure(conf):conf.load("compiler_cxx")conf.check_cxx(lib="thelib")conf.check_cxx(header_name"header.hpp")这在类Unix系统上运行良好,其中库和header大多位于公共(public)位置。但是,我想将自定义搜索路径添加到check_cxx()命令,特别是让Windows系统上的用户有机会找到通常位于文件系统某处的库。我知道libpath参数,但是它仍然需要以某种方式填充,我想知道是否没有

c++ - 使用单独的源代码和 header 编译类

编辑:问题的解决方案如下:http://www.jusuchyne.com/codingchyne/2011/03/codeblocks-failed-to-find-the-header-file/它不会编译,我有以下错误:foo.h目录下没有那个文件;foo尚未声明;num未在此范围内声明foo不是类或命名空间至少可以说,这很奇怪,因为我只是使用代码块“创建一个新类”,然后将其添加到该项目中。这是源代码:标题:#ifndefFOO_H#defineFOO_Hclassfoo{private:intnum;public:foo();voidset_num(intset);intget

c++ - 预编译 header 在使用 Qt Creator/qmake/MinGw 的调试版本中不起作用

在QtCreator中,我有一个使用PRECOMPILEDHEADERS的pro文件。当我在Release模式下构建时,构建工作非常完美。但是在Debug模式下构建会出错,生成目标文件失败。示例:17:12:40:RunningstepsforprojectEuclide...17:12:40:Configurationunchanged,skippingqmakestep.17:12:40:Starting:"C:\Qt\Tools\mingw48_32\bin\mingw32-make.exe"C:\Qt\5.2.0\mingw48_32\bin\qmake.exe-specwin

c++ - 使用 for_each 与 range-for 有什么好处?

从历史上看,我知道最好使用标准算法(例如for_each)而不是for循环,因为它们更具可读性。但我只是觉得在c++11中,常规的for循环比具有相应回调仿函数的众多标准算法要简洁得多。我这样想有错吗?许多标准算法是否已过时?这些方法有哪些不同的好处? 最佳答案 根据您的判断。由于lambda和更好的绑定(bind)表达式,许多算法在C++11中变得更容易使用,它们允许您以相对简洁的方式指定仿函数。然而,基于范围的for循环也是一个完全合法的选择。如果您只需要循环体中的一两个语句,那么一定要使用基于范围的循环。如果您需要在对象集合上

c++ - BOOST_ERROR_CODE_HEADER_ONLY 没有宣传的效果

在我的应用程序中,我包含了boost/system/error_code.hpp(boost1.58)但不想链接到boost_system,而是有一个仅header的解决方案。我通过定义应该可行的BOOST_ERROR_CODE_HEADER_ONLY来阅读。但不幸的是,它没有按预期工作。我仍然收到boost::system::system_category()的链接器错误。我想知道这是否应该有效,如果有效如何。boostheader中的代码是:#ifdefBOOST_ERROR_CODE_HEADER_ONLYinlineconsterror_category&system_cate

c++ - 如何让 wstring_convert::to_bytes 抛出 range_error 异常?

我正在使用std::wstring_convert将wstring转换为多字节字符串,如下所示://convertfromwidechartomultibytechartry{returnstd::wstring_convert>().to_bytes(wideMessage);}//thrownbystd::wstring_convert.to_bytes()forbadconversionscatch(std::range_error&exception){//dosomething...}为了对我评论为dosomething...的block进行单元测试,我希望传递一个将引发st

c++ - 编译错误 : Cannot open precompiled header. pch -- 没有那个文件或目录

我最近购买了BjarneStroustrup撰写的“编程:使用C++的原理和实践”一书,并一直在阅读它。我目前停留在一个早期项目中,我需要输出一些文本字符串。在Windows10LenovoYoga2Pro笔记本电脑上使用VisualStudioCommunity2015update1,我尝试编译该项目但遇到了详细错误:“无法打开预编译头文件:Debug\FindingtheUpstairsBathroom.pch':没有这样的文件或目录”。该项目的名称恰如其分地命名为“FindingtheUpstairsBathroom.cpp”。这是代码://Ihavetheheaders"std

c++ - 将 initializer_list 插入 std::vector 时出现 "Invalid iterator range"

此代码在Ideone上按预期编译并运行良好:#include#include#includeintmain(){std::vectorstrVec;strVec.insert(strVec.end(),{L"black",L"white",L"red"});strVec.insert(strVec.end(),{L"blue",L"green"});//STLexceptionfor(auto&i:strVec){std::wcout但是,在MSVC(VisualStudio2013)中因“无效的迭代器范围”而失败。有什么见解吗?顺便说一句,插入更多元素是可行的,例如在第二个插入中,这

c++ - fatal error C1189 : #error : core. hpp header 必须编译为 C++

我正在构建一个使用OpenCV的C应用程序。编译时出现如下错误:fatalerrorC1189:#error:core.hppheadermustbecompiledasC++我没有找到解决此错误的方法。如何在C项目中使用OpenCV? 最佳答案 选择所需的文件。启动它的属性窗口转到C/C++->Advanced,将Compileas更改为CompileasC++Code(/TP) 关于c++-fatalerrorC1189:#error:core.hppheader必须编译为C++,我