`basic_streambuf::setbuf` 的效果
我的问题如下: Martin York 声明 这个,这个,以及这回答了人们可以制作一个stringstream使用 basic_stringbuf::pubsetbuf 从某些内存中读取,如下所…
‘long’ 是否保证至少为 32 位?
通过阅读 C++ 标准,我一直明白 C++ 中整数基本类型的大小如下: sizeof(char) <= sizeof(short int) <= sizeof(int) <= sizeof(long int) 我从 3.9.1…
C++ 到底在哪里?标准说取消引用未初始化的指针是未定义的行为?
到目前为止,我找不到如何推断以下内容: int* ptr; *ptr = 0; 是未定义的行为。 首先,5.3.1/1 规定 * 表示将 T* 转换为 T 的间接。但这并没有说明UB…
C++ 中未定义行为段落中的 [Note] 是什么意思?标准是什么意思?
作为用户 Tony 指出 C++标准第1.3.12段中有一个[注意] 允许的未定义行为的范围从完全忽略具有不可预测结果的情况,到在翻译或程序执行期间以环境特有…
定义具有不同签名的函数
今天我发现可以在标头中用一个签名声明一个函数,并在源文件中用不同(相似)的签名实现它。例如,像这样: // THE HEADER example.hpp #ifndef EXAMP…
具有与另一个类同名的类静态方法
这是示例: struct A { A(const int a ):b(a) { } int b; }; struct B { B() : a(5) { } static void A() { } A a; }; int main() { B::A(); } 编译器…
ISO C 中数组的左值到右值转换
C++ ANSI ISO IEC 14882 2003 附录 C.1(第 668 页): 更改:条件表达式、赋值表达式或逗号表达式的结果可能是 Bean 左值 理由:C++是面向对象的语言…
未排序的值计算(也称为序列点)
抱歉再次打开这个主题,但是思考这个主题本身已经开始给我一种未定义的行为。想要进入行为明确的区域。 鉴于 int i = 0; int v[10]; i = ++i; //Expr1…
C 中 main 的参数数量限制
在 C 中,我们传递给 main() 的参数数量是否有限制?众所周知,它的定义为int main(int argc, char *argv[])。 当我调用程序时,我可以像这样传递参数…
为什么未命名命名空间不等同于带有“using命名空间”的常规命名空间?宣言?
SO 上的最近的帖子触发了此操作。 未命名的命名空间被认为相当于 namespace unique { /* empty body */ } using namespace unique; namespace unique …
优化掉“while(1);”在 C++0x 中
已更新,见下文! 我听说并读到 C++0x 允许编译器为以下代码片段打印“Hello”, #include int main() { while(1) ; std::cout << "Hello" << std::en…
迂腐:什么是源文件?什么是标头?
就这个问题而言,我只对符合标准的 C++ 感兴趣,而不是 C 或 C++0x,也没有任何特定于实现的细节。 问题不时出现有关#include "" 和 #include <> 之间…