律师 问答列表

为什么 C++ 标准明确指出,对于内置赋值运算符,没有引入左操作数的临时值?

作者:Jan Tušil 提问时间:4/10/2017

C++ 标准明确指出,对于内置赋值运算符,不会引入左操作数的临时值。但是,我认为没有必要。引自 N4296 §13.3.1.2/4: 对于内置赋值运算符,左操作数的转换 限制如下: (4.1) —...

C 语言中的赋值运算符

作者:OODAX 提问时间:5/12/2023

volatile int lhs = 1; int rhs = 2; int x = 3; x = lhs = rhs; 同化运算符是否返回 (typeof lhs)rhs ?或者它是否返回 n...

std::p air 的两个条目的销毁顺序是什么?

作者:Enlico 提问时间:7/27/2023

只允许使用 5 个标签,但请接受它,因为 c++20 和 c++23 也在列表中,因为我也想知道这些标准,以防自 c++17 以来发生任何变化。 标准是否指定了 a 的两个条目(不是 std::tu...

对于用户定义类型,是否禁止对用户定义 operator= 的 lhs 使用转换运算符?如果是这样,标准中的哪一部分禁止它?

作者:Enlico 提问时间:3/10/2023

以一个简单的类为例,包装一个 ,int struct Foo { int x; } f; 以及一个包含 和 可以转换为它的类,Foo struct Bar { Foo f; operat...

在 C 和 C++ 中作为语句的声明/定义

作者:Zebrafish 提问时间:4/17/2018

当这不能在 C 中编译时,我感到很困惑: int main() { for (int i = 0; i < 4; ++i) int a = 5; // A dependent statement...

复制构造函数是始终隐式定义,还是仅在使用时定义?

作者:R_Kapp 提问时间:6/22/2018

请考虑以下代码: #include <memory> #include <vector> class A { private: std::vector<std::unique_ptr<int>>...

是否允许在 C++ 中将全局变量命名为“read”或“malloc”?

作者:yeputons 提问时间:10/3/2021

请考虑以下 C++ 17 代码: #include <iostream> int read; int main(){ std::ios_base::sync_with_stdio(false); ...

构造一个“std::array”,其中包含的元素少于其可以容纳的元素?

作者:Ben 提问时间:7/11/2023

如果我用大括号构造一个并赋予它少于 items 的,这些项目是否为零初始化?(或者它们是否默认初始化?如果我给它零个项目(即 ),那么我相信它零初始化所有元素。std::array<T, N>N= {...

std::add_pointer 非静态成员函数的实现

作者:Vinod 提问时间:8/20/2019

这个问题是关于 std::add_pointer 实现的问题的后续 在 std::add_pointer 下 有以下参考: 否则(如果 T 是 cv 或 ref 限定的函数类型),则提供 成员 ...

具有需要可复制参数的构造函数模板的类本身不可复制

作者:Fedor 提问时间:1/27/2022

在下面的程序中,有一个构造函数模板,要求类型是可复制的。同时,它本身必须具有隐式定义的复制构造函数:struct AA(T)TA #include <type_traits> struct A {...


共167条 当前第3页