无符号整数增量是否会导致未定义的定义行为?
Can unsigned integer incrementation lead to undefined defined behavior?

读取64位上的32位无符号乘法值后,会导致未定义的行为? 关于StackOverflow的问题,我开始思考对小型无符号类型的典型算术运算是否可以......

声明的范围在do-while声明的主体中
Scope of declarations in the body of a do-while statement

为什么你不能在do while循环中声明一个变量? 操作系统询问为什么do-while循环的while-条件中的声明不在do语句中的范围内。 这将是非常不自然的......

用Java扩展私有类
Extending private class in Java

我发现下面的程序令人费解:package package1; public class Main {private static class A {} public static class B extends A {}} // ---------------- package package2; 上市 ...

为什么在编译时不执行[static N]?
Why is [static N] not enforced at compile-time?

C99在函数参数中添加了静态(只在函数定义中有意义,而不是声明):void func(int a [static 10]){if(a == NULL){/ *这个分支可以是...

匿名命名空间中的模板类的朋友
friend of templated class in anonymous namespace

当将类A声明为类B的朋友时,虽然A在匿名名称空间和B之外定义,但某些编译器会生成一个错误“受保护的成员不可访问”,而其他人则不会

使用没有std :: literals的后缀
Using suffixes without std::literals

我最近读到,C ++ 14中的s,h,ms等文字已经被放入命名空间std :: literals中。 所以如果我要使用它们,那么我应该包含命名空间或使用std :: literals:...

实例化模板函数重载
Instantiation of template function overloads

我知道编译器不会实例化未使用的模板函数,只要它们在类中不是虚拟的。 在一个简单的例子中,如果我有两个重载的模板函数,它们都是...

我在下面关于C ++标准的§9.3.1/ 3的观察中纠正了什么?
Am I correct in my observation below about §9.3.1/3 in the C++ Standard?

§9.3.1/ 3(强调是我的):当不是类成员访问语法(5.2.5)的一部分并且不用于形成指向成员(5.3.1)的指针的id-表达式(5.1)是用于类的成员...

推导一个元组的类型
deducing a tuple's types

我有这样的代码:template <typename T> inline typename :: std :: enable_if <is_std_tuple <T> {},T> :: type get(){//从某处拉取元素} In ...

原子的0初始化是否保证将值成员设置为0?
Is 0-initialization of atomics guaranteed to set the value member to 0?

std :: atomic <integral_type>变量的0初始​​化是什么意思? 问题的根源。 我有一个函数静态std :: std :: atomic <std :: int>的数组,我想将其设置为0 ...

转发就地建设和列表初始化
Forwarded in-place construction and list-initialization

通过转发就地构建,我认为std :: allocator :: construct和各种emplace方法,例如,std :: vector :: emplace_back。 我只是发现在C ++中转发就地建设...

函数返回另一个函数
Function returning another function

这个问题可能听起来很愚蠢,但为什么我们不能这样做呢? 我的意思是,像下面这样的声明符:void(foo())(); 我已经阅读了当前C ++标准的8.3.5节,并没有找到如何...

显式类型转换(功能符号)和简单类型说明符
Explicit type conversion (functional notation) with simple-type-specifier

移植一些代码我发现,行unsigned char uc = unsigned char(c); 被MSVC接受但被GCC拒绝。 这句法正确吗? 标准说,一个简单类型说明符(7 ....

getc()作为宏和C标准库函数的定义,相干?
getc() as macro and C standard library function definition, coherent?

在[7.1.4库函数的使用]中,我读到:在头文件中声明的任何函数可能另外实现为在头文件中定义的类似函数的宏...并且任何调用...

C ++依赖名称:是否需要此类型名称?
C++ dependent name: Is this typename required?

在a.hpp中我定义了:#include <utility> namespace Board {template <int W,int H> struct GroupNode {using PointType = std :: pair <int,int>; // ...}; } ...

没有标签的结构的typedef是否在每次使用时创建不同的类型,如果不是,为什么?
Does typedef of a structure without tag creates distinct type each time it is used and if not why?

我想知道你是否声明了这样的结构:typedef struct {// ...} name; 那么是不是每一个后续的'name'类型的声明都会有不同的类型呢? 我在想 ...

为什么功能f4的名称有内部连接,而不是C语言连接?
Why is it the case that the name of the function f4 has internal linkage, and not a C language linkage?

[dcl.link] / 4中的第五个例子声明如下:extern“C”{static void f4(); //函数f4的名称有内部链接(不是C语言链接)//和...

复合文字的生存期
Lifetime of a compound literal

6.5.2.5p5表示如果复合文字出现在函数主体之外,则该对象具有静态存储持续时间; 否则,它有自动存储持续时间与封闭......

评估顺序除外
Order of evaluation with exception

在下面的表达式中,如果异常,如果抛出赋值的rhs,即:bad_alloc将linesArg已经递减?:try {buffer [ - linesArg] = new char [rows]; catch(std :: bad_alloc&...

非限定名称查找:为什么本地声明隐藏了使用指令的声明
Unqualified name lookup: Why local declaration hides declaration from using directive

考虑这个代码:namespace A {int i = 24; } namespace B {using namespace A; int i = 11; int k = i; //找到B :: i,没有歧义}和basic.lookup.unqual.2:§6.4.1...

当static_cast到只移动类型时,Clang与GCC
Clang vs. GCC when static_cast'ing to a move-only type

考虑以下简单的仅移动类:struct bar {constexpr bar()= default; bar(bar const&)=删除; bar(bar &&)= default; bar&operator =(bar const&...

如果strcat函数中的目标字符串不是空的,它是未定义的行为吗?
Is it undefined behavior if the destination string in strcat function is not null terminated?

以下程序//代码取自http://ideone.com/AXClWb #include <stdio.h> #include <string.h> #define SIZE1 5 #define SIZE2 10 #define SIZE3 15 int main(void){ char ...

C ++中静态变量的数量是有限的
Is the number of static variables limited in C++

我正在与一个声称支持C ++的平台的开发人员交谈,但他们同时表示,在程序退出时清理的静态变量的数量必然会......

是否可以访问没有删除项目的破坏别名?
Is it possible to access a clobbered alias without Remove-Item?

假设在PowerShell会话中定义了一个别名,如下所示:Set-Alias Write-Host BadAliasName其中BadAliasName是在别处定义的,并且什么也不做。 BadAliasName可能是任何东西,甚至...

用于C ++语言律师的白话词典
Dictionary for vernacular of C++ language lawyers

在C ++中有大多数C ++书籍中未提及或解释的术语。 例如:单数迭代器(链接)限定名称(链接)依赖名称推导上下文阴影x / gl / pr-value(链接)...

`cname`和`name.h`中的类型可以是不同的类型?
Can types in `cname` and `name.h` be different types?

这个代码标准是否符合? #include <stdio.h> #include <cstdio> int main(){FILE * f1 = 0; std :: FILE * f2 = f1; }解释:标准说[头]:[...] ...

解开工会的记忆
Underallocating memory for a union

给定这个声明:struct s1 {int type; union u1 {char c; int i [10000]; }你; } s; 我想知道我们是否可以分配较少的内存的结构比sizeof(...

功能模板签名
Function template signatures

什么决定了两个函数模板声明是否声明了相同的模板,或者是同名的重载? 答案的开始在3.5p9中找到:两个名字相同(...

在标准命名空间中定义的Friending类:任何保证?
Friending classes defined in the std namespace: any guarantees?

当我回答这个问题时,出现了这个问题:该标准是否允许并且对朋友标准库类和/或函数做出任何保证? 在这种特殊情况下,情况...

在类模板定义中,是否应将名称查找推迟到由this->限定的类/名称空间名称?
Should name lookup be deferred for a class/namespace-name qualified by this-> in a class template definition?

clang 3.0和g ++ 4.8.1都会拒绝下面的代码,并在注释中显示错误:template <typename T> struct S {void f(){this-> dependent(); //没有错误:类型...

最令人烦恼的解析和指针间接/解引用
Most vexing parse and pointer indirection/dereferencing

最小的代码:struct A {A(int = 0){}}; int i = 0,* p =&i; int * foo(){return p; } int main(){A(); //调用`A :: A(int = 0)`A(i); //调用`A :: A(int = 0)`A(* p); // <---(1)...

在删除的数组上执行指针运算是否合法?
Is it still legal to do pointer arithmetic on a deleted array?

今天我写了一些如下所示的内容:void foo(std :: vector <char>&v){v.push_back('a'); 字符*前面=&v.front(); 字符*背面=&v.back(); size_t n1 = back-front + 1; ...

用c ++ 11创建独特的类型ID
Creation of unique type ID with c++11

为什么下面的代码保证是唯一的typeID? 使用TypeId = uintptr_t; template <typename T> static TypeId GetTypeId(){static uint32_t placeHolder; 返回(...

数组可以有尾部填充吗?
Can an array have trailing padding?

很显然,C中的数组无法在其元素之间插入填充。 但是,是否有任何规则说明它们不能在整个数组的末尾添加尾部填充? 即这是...

静态表生成与GCC协同工作,但不是叮当声;
Static table generation works with GCC but not clang; is clang bugged?

我曾经编写过一些代码,在编译时为一些模板元编程生成一个静态表/数组(想法是C编译的时候可以在编译时创建它们(它们只是...)

多于一个枚举声明
More than one enum declaration

有来自该部分的引述。 N3797工作草案的3.3.1 / 4:在单个声明区域中给定一组声明,每个声明指定相同的非限定名称 - 正好一个...

C标准中整数类型符号位的定义是否是一个错误?
Is this a mistake in the definition of the sign bit for integer types in the C standard?

我认为在ISO / IEC 9899:TC3 C标准的第6.2.6.2节中描述整数类型的符号位时存在错误。对于带符号整数类型,对象表示的位应为...

这是否避免UB
Does this avoid UB

这个问题更多的是学术问题,因为没有正当的理由来编写自己的抵消宏。 尽管如此,我已经看到这个在这里和那里自发实现的实现:#...

在参数列表中声明一个不完整的类型模板参数
Declaring an incomplete type template parameter in place in-the argument list

我已经看到使用像:boost :: error_info <结构标记名,std ::字符串> name_info; 这里tag_name命名一个不完整的类型,并且它之前的struct关键字似乎在原地声明它,...

类范围内的合格名称查找
Qualified name lookup inside the class scope

有一个来自3.4.3.1/1的引用:如果qualified-id的嵌套名称说明符指定了一个类,则在该类的范围内查找指定了嵌套名称说明符后指定的名称But ...

当函数模板专用于不同的命名空间时,GCC和clang不同意
When function template is specialized in a different namespace, GCC and clang disagree

参见下面的代码:namespace ns {template <typename T> void func(){}} template <> void ns :: func <int>(){} int main(){}当clang 3.6(C ++ 14)编译好,GCC 5.2(...

在非`constexpr`上下文中使用`constexpr`函数中的lambda:clang vs gcc
Using a lambda in a `constexpr` function in a non-`constexpr` context: clang vs gcc

考虑以下代码(可在gcc.godbolt.org上获得):template <typename TF> constexpr auto fn_x(TF f){return f(); } constexpr auto get_x(){return fn_x([] {return 0;}); } ...

Java LR或LL解析
Java LR or LL Parsing

我的一位老师说,Java不能被LL解析。 我不明白这一点,并怀疑这是否属实。 我搜索了一个Java 8的语法,并发现这个:https://github.com/antlr/grammars-v4/blob / ...

C ++中的依赖限定名称查找14
Dependent qualified name lookup in C++14

这是关于模板函数中的依赖名称查找,例如:template <class T> void foo(T const&t){:: func(t); }在这段代码中,func是一个独立的名字,因为它有一个...

(&const_object)可以被评估为临时地址
(&const_object) can be evaluated to address of temporary

我和一位程序员进行了讨论,其主要观点是foo中的以下声明可以通过或不通过,具体取决于编译器。 #include <cassert> const int i = 0; 无效...

C ++,函数指针异常错误
C++ , function pointer exception error

使用下面的代码,我会得到“错误:超出单一间接级别的异常规范”。 请给我一个参考书/规范,说它不被允许。 我想要 ...

在Python 3.x中,将非类指定为基类是合法的吗?
In Python 3.x, is it legal to specify non-classes as base classes?

下面是一个例子:>>> def magic(name,bases,dct):... print(repr(bases))... return type(name,(object,),dct)>>> class Foo ('hello world!',metaclass = magic):......

从函数指针读取数据是否合法?
Is it legal to read data out of a function pointer?

根据标准,从函数指针访问数据是否合法? 例如:#include <stdio.h> int test(){//} int main(){int(* fp)(void)=&test; int i = 0; ...

嵌套基于范围的语句是严格合法的吗?
Are nested range-based for statements strictly legal?

考虑以下代码:#include <vector> #include <iostream> int main(){std :: vector <int> v1 {1,2}; std :: vector <int> v2 {4,5}; for(auto i:v1){for(auto ...
1 2 3 4 5 6 7 30 31