language-lawyer

language-lawyer

文章 0 浏览 6

执行这两个 C++初始化语法在语义上有什么不同吗?

假设以下代码是可以正确编译的合法代码,T 是类型名称,x 是变量名称。 语法一: T a(x); 语法二: T a = x; 这两个表达式的确切语义是否有所不同?如…

胡渣熟男 2024-10-18 12:09:58 8 0

printf(“%x”,1) 是否会调用未定义的行为?

根据C标准(6.5.2.2第6段) 如果表示被调用函数的表达式的类型不包含 原型,对每个参数执行整数提升,并且参数 将 float 类型提升为 double 类型。这…

邮友 2024-10-11 20:45:33 10 0

正在手动模拟 C++ 中删除运算符的效果;正式非法?

我意识到这是不明智的,我不建议这样做,但我很好奇以下内容是否实际上在形式上是非法的:据 #include struct X { ~X() { std::cout << "~X()\n"; } }…

心清如水 2024-10-07 21:07:54 7 0

在从放置 new 获得的指针上使用运算符删除的合法性

我确信这段代码应该是非法的,因为它显然不起作用,但它似乎是 C++0x FCD 允许的。 class X { /* ... */}; void* raw = malloc(sizeof (X)); X* p = n…

冷情 2024-10-07 01:00:19 12 0

__PRETTY_FUNCTION__、__FUNCTION__、__func__ 之间有什么区别?

__PRETTY_FUNCTION__、__FUNCTION__、__func__ 之间有什么区别,它们的记录在哪里?我如何决定使用哪一个?…

永不分离 2024-10-06 13:20:41 9 0

`basic_streambuf::setbuf` 的效果

我的问题如下: Martin York 声明 这个,这个,以及这回答了人们可以制作一个stringstream使用 basic_stringbuf::pubsetbuf 从某些内存中读取,如下所…

微暖i 2024-10-06 03:01:58 5 0

‘long’ 是否保证至少为 32 位?

通过阅读 C++ 标准,我一直明白 C++ 中整数基本类型的大小如下: sizeof(char) <= sizeof(short int) <= sizeof(int) <= sizeof(long int) 我从 3.9.1…

迷离° 2024-10-05 21:55:16 9 0

是 (++i)++未定义的行为?

(++i)++ 是未定义的行为吗?前缀增量的副作用是否可能在检索增量对象以进行后缀增量操作后发生?这对我来说似乎很奇怪。 我的直觉告诉我,这在 C++03 …

戏剧牡丹亭 2024-10-05 16:18:35 11 0

C++ 到底在哪里?标准说取消引用未初始化的指针是未定义的行为?

到目前为止,我找不到如何推断以下内容: int* ptr; *ptr = 0; 是未定义的行为。 首先,5.3.1/1 规定 * 表示将 T* 转换为 T 的间接。但这并没有说明UB…

物价感观 2024-10-04 09:24:44 13 0

C++ 中未定义行为段落中的 [Note] 是什么意思?标准是什么意思?

作为用户 Tony 指出 C++标准第1.3.12段中有一个[注意] 允许的未定义行为的范围从完全忽略具有不可预测结果的情况,到在翻译或程序执行期间以环境特有…

月野兔 2024-10-04 07:29:18 12 0

定义具有不同签名的函数

今天我发现可以在标头中用一个签名声明一个函数,并在源文件中用不同(相似)的签名实现它。例如,像这样: // THE HEADER example.hpp #ifndef EXAMP…

葬シ愛 2024-10-03 15:05:49 5 0

什么是单一定义规则?

C++ 中的单一定义规则到底说了什么? 我能找到的唯一值得信赖的地方是《C++ 编程语言,第 3 版》。编辑,第 9.2.3 页。除此之外,该规则还有其他官方…

知足的幸福 2024-10-02 06:59:17 13 0

具有与另一个类同名的类静态方法

这是示例: struct A { A(const int a ):b(a) { } int b; }; struct B { B() : a(5) { } static void A() { } A a; }; int main() { B::A(); } 编译器…

倚栏听风 2024-10-01 17:22:01 6 0

联合作为基类

标准定义Union不能用作Base类,但是这有什么具体的理由吗?据我了解,联合可以有构造函数、析构函数、成员变量以及对这些变量进行操作的方法。简而言…

我的鱼塘能养鲲 2024-09-29 20:56:04 11 0

ISO C 中数组的左值到右值转换

C++ ANSI ISO IEC 14882 2003 附录 C.1(第 668 页): 更改:条件表达式、赋值表达式或逗号表达式的结果可能是 Bean 左值 理由:C++是面向对象的语言…

別甾虛僞 2024-09-27 11:27:25 8 0
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文