语言 - 律师 问答列表

在基元类型指针之间进行强制转换

作者:Luchian Grigore 提问时间:2/8/2013

以下定义是否明确: char* charPtr = new char[42]; int* intPtr = (int*)charPtr; charPtr++; intPtr = (int*) ch...

为什么 C++ 中的强制 RVO 需要公共析构函数?

作者:Fedor 提问时间:8/5/2021

请考虑下面的简单示例,其中函数返回一个带有私有析构函数的类对象,并且必须进行强制返回值优化 (RVO):barA class A { ~A() = default; }; A bar() { ret...

无论指针类型如何,都必须将“throw nullptr”捕获为指针吗?

作者:Fedor 提问时间:11/3/2021

以下程序抛出,然后捕获异常:nullptrint* #include <iostream> int main() { try { throw nullptr; } catch(int*) ...

可以在 C++ 中删除返回不完整类型的函数吗?

作者:Fedor 提问时间:12/19/2021

在以下示例中,返回不完整类型的函数被标记为已删除:f()A struct A; A f() = delete; 它被 GCC 接受,但在 Clang 中不接受,它抱怨: error: inco...

为什么 c++ 中的有符号整数溢出是未定义的,而不是实现定义的?[复制]

作者:Amir Valizadeh 提问时间:2/25/2023

这个问题在这里已经有答案了: 是否有一些有意义的统计数据可以证明未定义有符号整数算术溢出是合理的? (4 个答案) 为什么由于计算导致的符号溢出仍然是 C++20 中的未定义行为 (1 答案) 9个月...

如果我转发声明一个函数模板,我可以将定义放在调用站点之后而不显式实例化它吗?

作者:zwhconst 提问时间:8/15/2023

在一个大型项目的头文件中,我必须在调用站点之前转发声明一个函数模板。代码可以归结为: //H1.h #pragma once template <typename> void f(); inl...

MSVC 接受使用字符串文本初始化的 std::string 数组,但 gcc 和 clang 拒绝

作者:Alan 提问时间:11/8/2023

我注意到带有 C++20 的 msvc 允许通过字符串文字初始化数组,但 gcc 和 clang 都拒绝它。演示std::string #include <string> int main() { ...


共7条 当前第1页