草庐IT

标准ACL

全部标签

c++ - 标准 C++ 中是否有固定宽度的 bool 类型?

据我所知,bool类型的宽度是实现定义的。但是是否有任何固定宽度的boolean类型,或者我应该坚持使用,例如,uint8_t来表示固定宽度的bool?[编辑]我制作了这个自动生成C++类的python脚本,它可以保存我希望能够在微Controller和我的计算机之间发送的变量。它的工作方式是它还保留两个数组,其中包含一个指向这些变量中的每一个的指针以及每个变量的大小。这为我提供了必要的信息,可以轻松地序列化和反序列化这些变量中的每一个。但是,为了使其起作用,变量类型的sizeof、endianness等必须在两侧相同,因为我在两侧使用相同的生成代码。我不知道这是否会成为一个问题,但我

c++ - backtrace - 隐藏标准库和提升调用

我正在查看gdb中的回溯,它看起来非常困惑,因为对标准库和boost进行了所有调用。例如。我在调用堆栈上看到boost::bind和std::allocator,以及对标准库或Boost的其他几个类似调用。我想我会发现让回溯只显示我的程序中明确定义的函数会很有帮助。更好的是,如果我可以快速配置backtrace命令以在需要时显示或隐藏std和boost调用,这将有进一步的帮助。知道如何从调用堆栈中完全隐藏boost或配置回溯以打开和关闭boost日志记录吗? 最佳答案 没有内置方法可以做到这一点。不过,可以通过编写一个Python“

c++ - 为用户定义类型的 shared_ptr 专门化标准库函数是否合法?

标准说明了以下关于从标准库中专门化模板的内容(通过Whatcanandcan'tIspecializeinthestdnamespace?)Aprogrammayaddatemplatespecializationforanystandardlibrarytemplatetonamespacestdonlyifthedeclarationdependsonauser-definedtypeandthespecializationmeetsthestandardlibraryrequirementsfortheoriginaltemplateandisnotexplicitlyprohi

c++ - 使用标准库用 strtok 替换循环

我有一个strtok解决的问题(从字符串中拆分子字符串)但是我意识到strtok不安全。我想使用C++标准库的一些更现代的部分。我应该改用什么?staticintParseLine(std::stringline,std::stringseps,intstartIdx,std::vector&collection){if(startIdx>collection.size()){throwstd::invalid_argument("thestartindexisoutofrange");}charbuf[2000];strcpy_s(buf,line.c_str());autoidx=

c++ - C++11 的标准库会有前向声明头吗?

在C++03中没有-like文件,同时有header。这在未来会改变吗?减少依赖性和更好的模块化可能很有值(value)。更新:我收到了语言创建者的答复:“实际上不可能要求所有STL供应商都这样做”。 最佳答案 不,没有新的转发文件,只有旧的.与vector相比,完整的I/O系统很大,因此优势可能不那么显着。 关于c++-C++11的标准库会有前向声明头吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

c++ - Linux 上哪个版本的 C++ 库符合 "ISO C++ 11"标准?

目前我的电脑上有DebianSqueeze(AMD64linux)、libstdc++5和libstdc++6。这些C++库是否符合ISO标准C++11? 最佳答案 不,他们不完全符合,但他们有元素:C++11 supportonstdlibc++(这是针对最新版本的,而不是您拥有的版本)C++11 supportonGCC versions最好的办法是尝试libc++(为clang开发,但也适用于GCC4.4)。您也可以尝试下载并编译最新的clang或GCC版本。只有MS在VC11中具有完全实现的C++11库(或者他们声称如此,是

c++ - 删除函数定义(编码标准)中未使用的参数名称。

HerbSuttterC++编码标准说,删除函数中未使用的参数名称以编写零警告程序是一种很好的做法。例子:intincrement(intnumber,intpower=0){returnnumber++;}应该是intincrement(intnumber,int/*power*/=0){returnnumber++;}如果power参数存在“未使用的变量警告”。这适用于程序(没有编译错误),所以新的函数定义将是intincrement(intnumber,int=0)那么int=0对编译器意味着什么? 最佳答案 默认值为0的未命

c++ - 使用标准 C++ wifstream 读取 UTF-8 文本并转换为 UTF-16

我想从使用UTF-8编码的文件中读取一些文本,然后使用std::wifstream将其转换为UTF-16,如下所示:////ReadUTF-8textandconverttoUTF-16//std::wifstreamsrc;src.imbue(std::locale("???"));//UTF-8???src.open("some_text_file_using_utf8");std::wstringline;//UTF-16stringwhile(std::getline(src,line)){...dosomethingprocessingtheUTF-16string...}是

标准库中值和对象的 C++11 示例?

在C++113p3中声明:Anentityisavalue,object,reference,function,enumerator,type,classmember,template,templatespecialization,namespace,parameterpack,orthis.在17.6.1.1p1中声明:TheC++standardlibraryprovidesdefinitionsforthefollowingtypesofentities:macros,values,types,templates,classes,functions,objects.Whatisa

c++ - 如何编辑和重新构建 GCC libstdc++ C++ 标准库源代码?

我正在进行一些研究,并且想编辑libstdc++库中的一些源代码以进行实验。具体而言,我对试验并行排序算法很感兴趣。有什么地方可以找到文档来轻松编辑和构建源代码吗?我曾尝试构建各种版本的libstdc++库,但均未成功。似乎大多数新版本都需要构建整个gcc包,这是一个漫长得多的过程,尤其是当我要在libstdc++中编辑和试验一些文件时。我也找不到包含并行排序算法的源文件。我似乎只能找到定义函数的头文件,而不是源代码本身。非常感谢任何建议或文档链接。 最佳答案 是的,您必须构建整个GCC,但是一旦完成,您只需要重建libstdc++