草庐IT

标准图

全部标签

c++ - 标准异常邀请不安全使用?

建议您总是抛出从std::exception派生的东西,并且有一些预定义的特化,例如std::runtime_errorstd::exception的接口(interface)是根据非抛出访问器给出的。伟大的。现在查看std::runtime_error的构造函数classruntime_error:publicexception{public:explicitruntime_error(conststring&);};所以如果我这样做try{foo();}catch(...){throwstd::runtime_error("bang");}foo完全有可能因为内存不足而抛出,在这种

c++ - 函数异常规范和标准异常 - foo() throw(Exception)

在C++中,您可以像这样声明具有异常规范的函数:intfoo()constthrow(Exception);我找到了这两个链接:http://www.cplusplus.com/doc/tutorial/exceptions/和http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Fcplr156.htm但有几件事最终没有答案......问题1:为什么要添加异常规范?它会带来任何性能提升吗?编译器会有什么不同?因为

c++ - 替换标准 C++ 分配器?

我想用更健壮的分配器替换标准分配器(C++标准只需要对vector::resize进行溢出检查)。许多库提供的各种C++分配器在进行负面self测试时会一败涂地。我可以使用更强大的分配器。ESAPI的分配器不仅检查溢出,它还有调试仪器来帮助发现错误。http://code.google.com/p/owasp-esapi-cplusplus/source/browse/trunk/esapi/util/zAllocator.h.是否有一种标准方法可以轻松替换程序中使用的C++分配器?我还想确保它在库代码中被替换,我可能无法访问源代码。 最佳答案

c++ - 将代码编译为特定的 C/C++ 标准

我尝试用谷歌搜索这个,但我得到的只是关于如何编译基本程序的结果。是否可以通过指定代码应编译为C89、C99、C++98等,使用Clang++和G++将代码编译为特定的C++标准? 最佳答案 您可以使用-std标志。例如,要编译为C99,请使用-std=c99它的文档是here 关于c++-将代码编译为特定的C/C++标准,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/139210

c++ - 为 C++ 提供标准 GUI 库的缺点是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion对于C++的GUI编程,我们可以在太多的库中进行选择,比如Qt、Gtkmm、wxWidgets、FLTK还有另一个已经存在的:Nana。NanaC++库正在使用现代C++(C++11)语言功能,例如lambda、模板等,它似乎与C++标准库兼容。如果GUI库与C++标准库100%兼容,那么为什么我们不能将它用于下一个C++标准(C++14或C++17)?C++标准库中的库需要满足哪些条件?

c++ - 标准中是否定义了可变参数模板包扩展的顺序?

我认为扩展parameterpack有以下行为://forArgs...pf(p)...;//wasequivalenttof(p1);f(p2);...;f(pn);但我刚刚发现gcc(4.6、4.7和4.8)是相反的:f(pn);...;f(p2);f(p1);而clang却如我所料。这是GCC中的错误还是它们都符合标准?最小示例#include#includetemplateboolprint(constunsignedindex,constT&value){std::cerrvoidprintAll(Args...args){unsignedi=0;[](...){}(prin

c++ - 是否有与 addressof 相反的标准库函数?

我有一个算法,可以将指针转换为类std::vectorinput;std::vectorptrs;std::vectoroutput;所以为了获得ptrs我做transform(input.begin(),input.end(),back_inserter(ptrs),addressof);标准库中是否有相反的操作,比如deref_of这样我就可以得到如下结果:transform(ptrs.begin(),ptrs.end(),back_inserter(output),deref_of); 最佳答案 您可以使用boost::ind

c++ - 如何找到 C++ 标准库的实现?

这个问题在这里已经有了答案:WheretogetthesourcecodefortheC++standardlibrary?[closed](10个答案)关闭7年前。我很想了解某些C++功能的工作原理。我正在尝试学习C++11概念,例如std::function,但我总是碰壁,例如我不理解的INVOKE(function,arguments,return)。人们告诉我,“哦,忽略它并使用auto”,但我想真正深入地了解C++及其标准库的工作原理,所以我想找到标准库的源代码。我猜想C++标准库与C标准库和最低级别的杂乱汇编/二进制实现有点相关,例如std::iostream等,但我对更高

c++ - 学习 C++ 标准库——一个好主意?

我是C++的初级程序员,我还在学习基础,但我有一个关于C++中的标准库和STL的简单问题,我认为这不是来自语言的核心,我的意思是这个库只是使编程和可移植性更容易,这意味着如果我学习并掌握了C++规则,我可以构建自己的规则,我的意思是通常通过练习获得这种调用体验。示例:cout是标准输出函数,但是如果我想为Windows编写一个GUI软件,我永远不会只看它!!我的问题:这是真的吗?如果不是,为什么? 最佳答案 如果不熟悉标准库,就不能真正称得上是C++程序员。自己编写是一个非常糟糕的主意。我强烈建议您获取NicolaiJosuttis

c++ - 标准库是否需要符合标准?

是否要求标准库符合标准?我觉得标准库不符合标准。这种感觉的基础是编译器生成的错误消息。例如,有时GCC会给出以前缀__gxx开头的错误消息以及许多我现在不记得的其他错误消息。但是看到它们让我觉得这些是非常编译器特定的消息,不同的编译器将无法编译GCC提供的标准库,反之亦然。是真的吗?这个问题可以换句话说:一个编译器提供的标准库可以用其他编译器编译吗?当我们说一个特定的编译器符合标准时,它是否自动意味着它附带的标准库也符合标准?或者它只是意味着这个编译器可以编译我们程序员编写的符合标准的代码?我可以在我的项目中使用一个编译器提供的标准库,而我的项目使用不同编译器来编译项目吗?可移植性是否