草庐IT

标准ACL

全部标签

c++ - 单元测试调用标准库的 C++ 方法的模式

我正在编写一个C++类来包装套接字(我知道这有很好的库——我正在自己练习):classSocket{public:intinit(void);//callssocket(2)//otherstuffwedon'tcareaboutforthesakeofthiscodesample};这个类又被其他几个人使用,我知道我可以用googlemock进行单元测试通过子类化和模拟。但是我想开发这个类testfirst,目前有点卡住了。我不能在C标准库(即socket.h,在这种情况下)上使用googlemock,因为它不是C++类。我可以围绕我需要的C标准库函数创建一个薄的C++包装器类,例如

c++ - 在 C++11 标准的 §7.3.1.2/3 中有一些我不理解的细节

C++11标准中的§7.3.1.2/3(重点是我的):Everynamefirstdeclaredinanamespaceisamemberofthatnamespace.Ifafrienddeclarationinanonlocalclassfirstdeclaresaclassorfunctionthefriendclassorfunctionisamemberoftheinnermostenclosingnamespace.Thenameofthefriendisnotfoundbyunqualifiedlookup(3.4.1)orbyqualifiedlookup(3.4.3

c++ - 使用 C++17 处理 Unicode 的高效、符合标准的机制是什么?

短版:如果我想编写可以有效执行Unicode字符操作的程序,能够输入和输出UTF-8或UTF-16编码的文件。使用C++执行此操作的合适方法是什么?长版:C++早于Unicode,并且两者都已经有了显着的发展。我需要知道如何编写符合标准且无泄漏的C++代码。我需要一个明确的答案:我应该选择哪个字符串容器?std::string用UTF-8?std::wstring(不太了解)std::u16string使用UTF-16?std::u32string使用UTF-32?我应该完全坚持使用上述容器之一还是在需要时更换它们?使用UTF字符串时,我可以在字符串文字中使用非英语字符吗,例如波兰语字

c++ - 标准的 c++11 方法来删​​除一个类型的所有指针

有没有办法用一些c++11或至多一个boost库来做到这一点?#include#includeusingnamespacestd;templateclassremove_all_pointers{public:typedefTtype;};templateclassremove_all_pointers{public:typedeftypenameremove_all_pointers::typetype;};intmain(){//correctlyprints'i'ongcccout::type).name() 最佳答案 这并不

c++ - boost::format 和自定义打印标准容器

我的命名空间中有一个函数ns这有助于我打印STL容器。例如:templatestd::ostream&operator&set){stream这非常适合使用operator进行打印直接:std::setx={"1","2","3","4"};std::cout但是,使用boost::format是不可能的:std::setx={"1","2","3","4"};boost::format("%1%")%x;问题相当明显:Boost不知道我希望它使用我的自定义operator打印与我的命名空间无关的类型。在添加using之外申报成boost/format/feed_args.hpp,有没

第十一章 Python 常用标准库

系列文章目录第一章Python基础知识第二章python字符串处理第三章python数据类型第四章python运算符与流程控制第五章python文件操作第六章python函数第七章python常用内建函数第八章python类(面向对象编程)第九章python异常处理第十章python自定义模块及导入方法第十一章python常用标准库第十二章python正则表达式第十三章python操作数据库文章目录系列文章目录描述系统管理:os获取文件属性:os.path与解释器交互:sys获取系统信息:platform查找文件:glob生成随机数:random执行shell命令:subprocess序列化与

c - 为什么我不应该使用 __fastcall 而不是标准的 __cdecl?

我听一些人说__fastcall比__cdecl和__stdcall快,因为它把两个参数放在寄存器中,而不是一个其他电话;但是,另一方面,这不是C中使用的标准。我想知道是什么让__fastcall不像C中的标准那样令人讨厌,以及我什么时候会在我的代码中使用它。 最佳答案 x86平台的不同寻常之处在于它没有定义全局ABI和调用约定。Win32/x86可以,它在stdcall上标准化。调用约定之间存在各种权衡——将参数放在寄存器中速度更快,但它会强制调用者溢出之前使用这些寄存器的任何内容。因此很难预测哪个性能更好。重要的是要有一个统一的

c++ - 标准容器元素类型和std::allocator类型不一样是不是错了?

取自here(很旧):It'salsoimportantthatthetypeusedfortheallocatortemplateparameterandthetypeusedastheelementtypeinastandardcontaineragree.Forinstance:std::list>//Wrong!won'twork.问题以上说法是否正确(或曾经正确过)?无论我为T设置什么,我所做的任何测试似乎都可以正常工作在std::allocator.例如,std::vector>编译和工作正常推回和删除元素等。(据我所知,std::allocator::rebind::ot

c++ - 什么是 "Clean C",它与标准 C 有何不同?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。纯C和C++中的C有什么区别?关于“CleanC”的一些细节是什么Lua基于?这些功能是什么?

c++ - C++ 中的标准输出流是否是线程安全的(cout、cerr、clog)?

我知道目前的C++中没有线程的概念,但是thisarticleissaying:Atypesafe,threadsafe,portableloggingmechanism.....Thefprintf()functionisthreadsafe,soevenifthislogisusedfromdifferentthreads,theoutputlineswon'tbescrambled.cout、cerr和clog呢?我认为这个问题也适用于C++中的所有流类型,例如fstream和stringstream。 最佳答案 文章声明了f