`const int a = 1;`是`a`是一个常量表达式,如果`a`有自动存储持续时间
`const int a = 1;` is `a` a constant expression, if `a` has automatic storage duration

N4527 5.20 [expr.const] p2条件表达式e是核心常量表达式,除非根据抽象机器(1.9)的规则评估e将评估其中一个...

具有C ++标准强制要求的时间复杂度的操作能否动态分配内存?
Can operations with a time complexity mandated by the C++ standard dynamically allocate memory?

C ++标准并没有强制要求内存分配的时间复杂度,因为它超出了它的域(通常取决于操作系统的行为)但是这意味着任何具有指定内容的东西......

C风格的非多态类型
C-style cast on a non-polymorphic type

假设我有一个基本结构FOO,它本质上是一个C风格的结构:struct FOO {double bar1; int bar2; }; 还有一个C ++样式结构(它有成员函数,没有成员数据,但没有v -...

澄清转换的常量表达式定义
Clarification of converted constant expression definition

(根据我最近的问题和另一个问题。)[expr.const] / 4表示:T类型的转换常量表达式是一个表达式,隐式转换为类型T,其中转换后的...

为什么不进行bit和正确解析以形成右值引用?
Why isn't bitand properly parsed to form an rvalue reference?

可以使用替代标记形成右值引用:int和i = 0; 它也可以在拼接物理源线后形成逻辑源线:int&\&i = ...

当显式模板实例化定义在显式声明之前时,GCC和clang不同意
When explicit template instantiation definition precedes explicit declaration, GCC and clang disagree

请参阅以下代码:#include <vector> template class std :: vector <int>; extern模板类std :: vector <int>; int main(){}虽然GCC 5.2编译好,但是clang 3.6给出了...

关于std :: tuple对象上std :: get()的返回类型的混淆
Confusion about the return type of std::get() on std::tuple objects

请参阅以下代码(请参见此处):#include <iostream> #include <tuple> #include <type_traits> #include <utility> struct S {int && v; }; int main()...

我想知道哪个是与下面链接相对应的C ++标准草案编号
I'd like to know which is the C++ Standard draft number corresponding to the link below

http://eel.is/c++draft/我之所以这样问是因为N4582中的§9.5.1[class.union.anon]部分(似乎是最新的草稿)对应于链接中的第9.3.1节

在定义可见性方面,标准对unordered_set的Value类型有什么要求
What requirements does the standard impose on the Value type of unordered_set in terms of definition visibility

我正在创建一个包含带有自己的散列和谓词的unordered_set的类,如下所示://SetHolder.h #include <unordered_set> struct SetHolder {SetHolder(); //定义于......

来自相同类型对象的列表初始化优先级
List-initialization priority from object of same type

#include <iostream> #include <initializer_list> using namespace std; struct CL {CL(){} CL(std :: initializer_list <CL>){cout << 1;} CL(const CL&){cout << 2;} ...

标准和禁止整数等价
Standard and fasted integer equivalency

该标准给出了标准无符号类型的以下最小位宽:unsigned char> = 8 unsigned short> = 16 unsigned int> = 16 unsigned long> = 32 unsigned long long> = 64 ...

运营商的相关性
Associativity of operators

在C#规范中说:除了赋值运算符和空合并运算符之外,所有二元运算符都是左关联的,这意味着操作是从左边执行的...

完整的对象或子对象?
Complete object or subobject?

C ++ 14标准说:子对象可以是成员子对象,基类子对象或数组元素。 不是任何其他对象的子对象的对象称为完整对象。 (§1.8(2)...

类型别名中详细说明的类型说明符
Elaborated type specifier in type alias

为什么以下代码中没有硬错误? 类型别名和类名完全相同(编译器俚语):使用S = struct S; struct S {}; S s; int main(){}确切使用的名字...

WinAPI将POD与基本类型联合起来:依赖于实现还是符合标准?
WinAPI union punning of PODs to fundamental types: Implementation dependent or standard compliant?

在处理Windows API时,当需要大量数据时,经常会遇到结构。 MSDN文档鼓励在这些结构上使用union punning将它们转换为基础...

我们可以在数组内联声明中分配更少的数组内容吗?
Can we assign less array contents at array inline declaration?

我有一个数组A,它封装了B类型的M数组。每个这样的B数组都有3个组件。 但是,我需要将我的条目填充到4个组件。 一种方法是修改我的值以...

函数范围内的“extern string-literal declaration”
"extern string-literal declaration" within function scope

从[dcl.link]#2:extern string-literal声明段落中没有为函数作用域中的声明指定任何特殊情况,但是后面也没有编译:void foo(){...

不完整的`struct X`和`struct Y`的对齐要求是否相同?
Is the alignment requirement for incomplete `struct X` and `struct Y` the same?

回答“C:何时在指针类型之间进行转换而不是未定义的行为?” 表示通过没有更严格对齐要求的指针向前和向后投射是安全的。 对齐是......

允许复制列表初始化和显式构造函数?
Copy list initialisation and explicit constructor allowed?

我在VS2013中使用以下代码并进行编译。 显式QIcon(const QString&fileName); //文件或资源名称void setWindowIcon(const QIcon&icon); 我称之为...的功能

存在用户定义的移动构造函数/赋值的隐式复制构造函数[duplicate]
Implicit copy constructor in presence of user-defined move constructor/assignment

它是在cppreference上编写的,对于后C ++ 11版本的标准,其中复制构造函数被隐式定义为已删除的情况如下(类T的构造函数):T有一个...

是否定义了C中不同int宽度的位运算符?
Are bitwise operators on different int widths in C well defined?

我想确定我理解如果两个不同宽度的整数与彼此按位OR运算会发生什么。 最明智的选择是用零填充较小的一个。 我写了一个小...

为什么动态分配的数组不能从列表初始化器中推断出它的大小?
Why can a dynamically allocated array not infer its size from a list Initializer?

为什么:new int [] {10,20,30,40,50}; 非法(至少从C ++ 14开始)?,gcc 6.3的错误:错误:'int [1]'的初始化程序太多

是否在联盟UB中写出超出较小规模成员的大小?
Is writing beyond the size of smaller size member in a union UB?

根据我对union的知识,它就像一个结构,主要区别在于union所有成员共享相同的内存。 虽然每个struct的成员都有自己独特的内存。 还......

不透明的归属不会产生新的抽象类型
Opaque ascription doesn't generate fresh abstract type

ML模块系统的一个真正伟大的特征是不透明的归属和签名中的生成类型声明之间的相互作用:Poly / ML 5.7.1 Release> structure O:> OPTION = ...

为什么没有用户提供cp / mv ctor且具有虚拟功能但没有虚拟基础的类没有“trival cp / mv ctor”?
Why do classes with no user-provide cp/mv ctor and have virtual functions but no virtual bases not have "trival cp/mv ctor"?

根据标准:如果类X不是用户提供的,并且如果 - 类X没有虚函数(10.3)且没有虚基类(10.1),则类X的复制/移动构造函数是微不足道的,并且 - ...

在C ++标准中,对象的内存布局是否记录在案?
Where in the C++ Standard is the memory layout of objects documented?

这是一个很大的问题,所以我要求参考而不是小册子大小的答案。 我正在经历Stroustrup的C ++之旅,似乎对象布局的方式是内存是......

atomic_thread_fence(memory_order_release)与使用memory_order_acq_rel不同吗?
Is atomic_thread_fence(memory_order_release) different from using memory_order_acq_rel?

cppreference.com提供了关于std :: atomic_thread_fence(强调我的)的注释:atomic_thread_fence比具有相同std的原子存储操作强加更强的同步约束:...

定义名称查找规则在哪里找到最直接的名称声明?
Where is name lookup rule defined that finds the most immediate declaration of a name?

int i; void f(){int i {}; {int a = i; //本地或全球'我'? 我的问题不是我被选中的,因为很明显它是本地的,而是在......

在c ++函数签名中使用`struct`是否定义良好?
Is the use of `struct` well-defined in c++ function signatures?

这个问题与另一个问题类似,但更具体:在C ++中的变量声明中使用struct关键字。 考虑以下程序:#include <stdio.h> struct Foo {...

计时库中的Clock和TrivialClock概念
The Clock and TrivialClock concepts in the chrono library

std :: chrono库部分依赖于Clock和TrivialClock的概念。 我完成了标准,但我仍然不确定几件事:时钟之间的唯一区别是......

具有可变参数模板参数的临时对象;
temporary objects with variadic template arguments; another g++/clang++ difference

以下代码struct foo {foo(){} template <typename T0,typename ... Ts> foo(const T0&t0,const Ts&... ts){foo(ts ...); }}; int main(){...

术语:用户定义的函数对象属性?
Terminology: A user-defined function object attribute?

根据Python 2.7.12文档,用户定义的方法:获取类的属性(可能通过该类的实例)时,可以创建用户定义的方法对象,如果...

构造函数使用声明提名
Constructor nominated by using declaration

我正在尝试声明一个成员名称,它是基类的构造函数,如下所示:#include <iostream> class A {}; B级:公共A {使用A :: A; //错误:'A :: A'命名构造函数} ...

CSS负边距重叠不适用于子元素
CSS negative margin overlap not working on child elements

我正在努力解决一些基本的CSS布局流程。 如果我有一个接一个的两个div,其中第二个div有一个负的上边距,我希望它与前面的div重叠。 但是,我发现......

按位运算是否可移植?
Are bitwise operations portable?

假设我们有以下代码:int j = -1&0xFF; j中的结果值可以是基于底层表示的以下之一:系统值二的补码...

我可以扩展参数包并用它定义参数列表吗?
Can I expand a parameters pack and define an arguments list with it?

从[temp.variadic](工作草案)中我可以看出,在定义另一个模板类或函数的参数列表时,可以扩展参数包。 考虑以下课程:......

非连续对象的数组
Array of non-contiguous objects

#include <iostream> #include <cstring> //在C ++对象模型(§1.8.5)意义上,不保证此结构占用连续的存储空间:struct separated {int i; ...

一个对象被破坏后,标量类型的子对象会发生什么?
After an object is destroyed, what happens to subobjects of scalar type?

考虑这段代码(对于不同的更新和清理值):struct T {int mem; T(){} ~T(){mem = 42; }}; //身份函数,//但打破了输入和...之间的任何联系

类成员转换函数-id
Class member convertion function-id

我正在寻找Stadard的引用描述了以下行为:以下规则是转换类型id查找(3.4.6 / 7):如果id-expression是转换函数id,它的.. 。

当模板参数包含非静态成员的名称时,是否需要'typename'?
Is 'typename' required when template argument contains name of non-static member?

另一个语言律师。 对于以下代码,无论是否存在A <int>的显式实例化:clang 3.0在Type1的声明中需要typename并且...

了解命名空间的合格名称查找
Understanding Qualified name lookup for namespace

我想了解命名空间限定名称查找。 我正在尝试利用以下3.4.3.2.2:对于名称空间X和名称m,定义了名称空间限定的查找集S(X,m)...

为什么sizeof预定义的流对象因编译器而异?
Why sizeof predefined stream objects varies from compiler to compiler?

在你开始将它标记为重复之前,我已经读过这个了。 但它没有回答我的问题。 我同意sizeof(int)是C&C ++中的实现定义行为。 但我得到......

在一个声明语句中定义函数和变量
Defining a function and a variable in one declaration statement

我很确定以下是合法的int a,* b,c [5],d(char x); 这定义了一个整数a,一个指向int b的指针,一个包含5个int的数组c,并声明了一个函数d,它接受一个char并返回int。 ...

是否存在可变含义逻辑const的强制机制?
Does any enforcement mechanism exist for mutable meaning logical const?

C ++关键字mutable允许我们在const对象中使用非const成员。 这提出了一个问题,'什么? 为什么?!',已经在SO上解决了。 'mutable'关键字是否有任何......

C程序输出说明[重复]
Explanation of output of a C program

以下程序给出了输出:hffltgpshfflt有人可以解释一下,postfix ++,前缀++和dereference(*)运算符的运算符优先级如何决定这个输出? 的#include <stdio.h中&...

读取未初始化的变量[重复]
Reading uninitialized variable

读取未初始化的变量会导致未定义的行为,例如#include <iostream> int main(){int a; std :: cout << a << std :: endl; //未定义的行为}有人可以......

重写嵌套类并返回外部类作为基础是合法的吗?
Is overriding nested class and returning the outer class as base is legal?

让我们考虑以下代码:class Base {protected:struct BaseInner {virtual void func()= 0; }; BaseInner * ptr; public:void func(){if(ptr){...

字符串化块中的空字符文字
empty character literal in stringified block

为了简化在C ++中编写SQL查询,我使用宏#define SQL(...)#__ VA_ARGS__它工作正常,除非出现空字符串文字(类似于SQL(select * from foo where bar = ...)

我在哪里可以找到标准中对* p和p [0],*(p + 1)和p [1],...之间等价的参考?
Where can I find in the Standard a reference to the equivalence between *p and p[0], *(p+1) and p[1], ...?

在下面的片段中,符号* p相当于p [0],*(p + 1)相当于p [1],依此类推。 int * p = new int [3] {1,2,3}; cout << * p <<''<< *(p + 1)<<''&...
1 2 3 4 5 6 7 48 49