auto

c – 以前用过的’auto`是什么?

我知道在C11之前,auto关键字的含义完全不同;它是一个存储类型说明符,指示具有自动存储类型的对象.这就是理论如何……你将如何实际使用这个关键字(语法),为什么?另外,我还没有在实际代码pre-C11中看到过这个关键字;什么时候有用?解决方法它用于声明具有自动存储持续时间的局部变量.至少从C90开始,它一直是一个无用的关键字,因为自动存储持续时间是局部变量的默认存储持续时间.

c – 无法使用auto to parametrize true_type检测T :: value()

使用SFINAE,has_value_int和has_value_auto两者都试图检测类T是否具有名为value的静态constexpr函数.>使用int来参数化true_type,has_value_int效劳于演示类传递和失败.>使用auto来参数化true_type,has_value_auto总是返回false.使用int和使用auto有什么区别,为什么auto不能工作?具体来说,为什么重载解析更喜欢match_auto(…

c – “auto”的参考和cv剥离属性.

我知道用这种方式声明一个使用auto的变量基本上就像采用expr和剥离&–&-references的类型,并且从它的所有顶级常量和挥发性.这是否意味着以上行完全等同于以下内容?解决方法不,这不是真的.autovar=expr;更像是通过expr通过值.这使得y为int*.主要是自动x=expr;行为像模板类型扣除:它更像是std::decayvar=expr;.

c – decltype(auto)和decltype(return expr)之间有什么区别?

如果在这两种情况下都不使用括号,那么decltype和decltype之间的区别就是函数的返回类型(模板)?以上f可以在任何上下文中定义/声明,并且可以是函数或函数模板,甚至是(通用的)lambda.expr可以依赖于任何模板参数.在第二个版本中,两个expr是完全相同的表达式,没有额外的括号.可以期待哪些差异,在C14及更高版本中使用第一或第二种形式?

使用C拖尾返回类型时auto是什么意思?

而不是平常C11允许是一种替代方法,使用追溯归档在后者–汽车设计代表什么?另一个例子,考虑功能同样的问题,在这个例子中auto是什么意思?解决方法一般来说,C11中的新关键字auto表示表达式的类型应该从表达式的结果推断出来,在这种情况下,在–>之后会发生什么.没有它,该函数将没有类型,并且编译器将最终混淆.

c – decltype(auto)foo()返回本地引用而没有任何警告

在玩现代C的例子时,我写了下面的代码.代码编译命令:g-6-std=c14-Wall-O0decl_fail.cpp-odecl_fail输出:很明显,decltype返回表达式的引用,因此a和b是无效的引用.问题是为什么编译器没有在foo_no_warn中警告我?解决方法首先我们来说明这个问题与decltype没有明确的关联,因为如果函数返回Counter&明确.您可以考虑以下代码:虽然返回了本地引用,但是编译器在VS2015和gcc48中都不会发出警告.但是,如果您从const类型&数据编译器马上赶上

c中的“auto”关键词概念

你能否在C程序中给出关键字“auto”的确切概念.当我通过一本书“深C秘密”,得到以下报价.Theautokeywordisapparentlyuseless.Itisonlymeaningfultoacompiler-writermakinganentryinasymboltable—itsaysthisstorageisautomaticallyallocatedonenteringthebl

c# – 为什么System.DateTime结构具有布局类型Auto?

structSystem.DateTime及其表单System.DateTimeOffset的结构布局类型设置为“Auto”.这可以看出:要么:或者从IL中可以看出:通常用C#编写的struct(即.NET值类型不是枚举)将具有“Sequential”布局(除非已经应用了StructLayoutAttribute以指定其他布局).我搜索了一些常见的BCL程序集,而DateTime和DateTime