language-lawyer 相关问题

有关编程语言和环境的正式或权威规范的复杂性的问题。

为什么链接器在下面的代码中没有发出错误?

我在这里找到了这个例子。显然,片段中的注释是错误的,因为变量S :: x由表达式&S :: x使用。 struct S {static const int x = 1; }; void f(){&S :: x; } ...

回答 3 投票 5

注入的类名称为类型

给出以下代码,模板 使用void_t = void;模板 struct X {enum {v = 0}; };模板 结构X.

回答 2 投票 14

使用引用的constexpr静态成员作为模板参数

我试图弄清楚GCC或Clang是否在这里以不同/错误的方式解释C ++ 17标准。这是我的代码,它使用GCC 8编译,但不使用Clang 6:struct BoolHolder {...

回答 1 投票 7

stream :: seekoff会更新输入序列吗?

在[filebuf.virtuals]中:pos_type seekoff(off_type off,ios_base :: seekdir方式,ios_base :: openmode,= ios_base :: in | ios_base :: out)覆盖;效果:让......

回答 1 投票 10

在具有引用成员的对象上使用放置`new`的结果

“使用新位置更新参考成员?”问题显示了这个例子(简化):struct Foo {int&v_; }; int a,b; Foo f {a};新(&f)Foo {b};断言(&f.v_ ==&a); ...

回答 1 投票 3

C中暂定定义背后的基本原理是什么?

考虑以下程序。这会给出任何编译错误吗? #包括 int s = 5; int s; int main(void){printf(“%d”,s);乍一看似乎编译器会给...

回答 2 投票 20

扣除指南,initializer_list和类型扣除过程

请考虑以下代码:#include #包括 模板 struct test {test(const std :: pair &){}};模板

回答 2 投票 2

逗号运算符使lambda表达式非constexpr

根据[此问答],因为c ++ 11逗号运算符是constexpr能力的。根据[此问答],constexpr变量不应该被lambda捕获,但应该可以在其体内使用。两者......

回答 2 投票 6

使用Detected Idiom实现is_destructible

这是我对is_destructible_v:template的实现 struct is_unknown_bound_array:std :: false_type {};模板 struct is_unknown_bound_array :std :: ...

回答 1 投票 3

C ++ 11标准中“顶级cv-qualifiers”的定义在哪里?

在草案C ++ 11标准:N3337中,我发现了几个对顶级cv限定符的引用,但没有定义。

回答 3 投票 11

为什么成员在此示例中未进行零初始化?

这特别是关于C ++ 11:#include struct A {A(){} int i; }; struct B:public A {int j; }; int main(){B b = {}; std :: cout << b.i << b ....

回答 3 投票 18

签名/无符号别名规则是否按预期工作?

这是C ++ 17形式的规则([basic.lval] / 8),但它在其他标准中看起来很相似(“Lvalue”而不是C ++ 98中的“glvalue”):8如果程序尝试访问...的存储值

回答 1 投票 5

退出状态是否可观察到行为?

C 2018 5.1.2.3 6说:对符合实现的最低要求是:严格根据抽象机器的规则评估对易失性对象的访问。在 ...

回答 2 投票 12

检查非活动联合成员,共同的初始序列

这个问题基于此考虑以下内容:struct Hdr {int type; };结构A {Hdr h; }; union Big {Hdr h;一个; };并且假设对于Big big我们知道big.a是活跃的......

回答 1 投票 5

为什么枚举常量没有链接?

我试图理解枚举常数的联系,并且在标准N1570中找不到明确的答案。 6.2.2(p6):以下标识符没有链接:声明为...的标识符

回答 3 投票 1

std :: is_constructible立即上下文和朋友声明

最近我试图检测特定私有构造函数的存在,并遇到std :: is_constructible仅检查直接上下文因此不会识别任何此类问题的问题。

回答 2 投票 1

C的main()函数的有效签名是什么?

C中主要功能的有效签名究竟是什么?我知道:int main(int argc,char * argv [])还有其他有效的吗?

回答 5 投票 52

为什么不存在多次执行某些操作但没有在C ++中定义计数器的语法? [关闭]

我正在寻找一种语法,它可以多次执行一些操作而无需定义计数器。例如:do(10){//做某事}其他语言都有这个;这是......的不足之处

回答 3 投票 -3

什么时候`typename`可以与明确引用类型的标识符一起使用?

通常,typename用于消除标识符可能引用类型的情况之间的歧义,或者可以引用其他内容:模板 void foo(typename T :: type value){// ...} ...

回答 2 投票 3

© www.soinside.com 2019 - 2024. All rights reserved.