213得票2回答
decltype(auto)的一些用途是什么?

在C++14中引入了decltype(auto)这个习语。 通常它的用法是允许auto声明在给定表达式上使用decltype规则。 在寻找这个习语的“好”用法的例子时,我只能想到以下类似的事情(由Scott Meyers提供),即用于函数的返回类型推断。 template<type...

212得票8回答
auto关键字的含义是什么?

据我所了解,auto一直是一个奇怪的存储类别说明符,没有任何实际用途。 然而,我尝试了一下auto的用法,它会根据我赋给它的值来确定类型!使用auto可以让涉及迭代器和其他许多东西的代码更容易编写。 这个关键字从什么时候开始可以使用?这是Visual C++的扩展吗?

180得票7回答
何时应该使用C++14的自动返回类型推断?

随着GCC 4.8.0版本的发布,我们拥有了支持自动返回类型推断的编译器,这是C++14的一部分。使用-std=c++1y,我可以做到这一点: auto foo() { //deduced to be int return 5; } 我的问题是:什么时候应该使用这个功能?什么时候...

39得票1回答
为什么自动返回类型推断在未完全定义的情况下也能工作?

请考虑以下内容:template<typename Der> struct Base { // NOTE: if I replace the decltype(...) below with auto, code compiles decltype(&Der...

34得票2回答
自动返回类型推导是否强制多个函数具有相同的返回类型?

请考虑下面的代码片段:struct A { auto foo(), bar(); }; auto A::foo() { return 1; } auto A::bar() { return 'a'; } int main() { } 在Clang++ 3.7.0中编译正常。在G++ ...

33得票5回答
为什么主函数的返回类型不能被推导?

如预期的那样,在C++11中以下代码会失败,因为该语言不支持常规函数的返回类型推导:auto main() { return 0; } 然而,C++14可以做到,因此我无法解释以下错误(在GCC trunk、clang 3.8和Visual Studio 2015中具有相同的结果):er...

30得票1回答
类内友元函数的返回类型推导

这是一个使用Clang 3.4 SVN和g++ 4.8.1(在两种情况下都使用了std=c++1y)的小实验,涉及到内部友元函数的返回类型推断,这在链接的工作文件中没有记录。#include <iostream> struct A { int a_; friend...

29得票3回答
如果lambda表达式返回vector的一个元素,那么它的返回类型是什么?

考虑以下代码片段:#include <iostream> #include <vector> #include <functional> int main() { std::vector<int>v = {0,1,2,3,4,5,6}...

28得票3回答
void{}是否合法?

这是此问题的跟进。 在评论和答案中,多次提到void{}既不是有效的类型标识符,也不是有效的表达式。 这很好理解,也很合理。 然后我看到了草案中的[7.1.7.4.1/2](占位类型推导)。 那里说到: [...] - 对于在返回类型包含占位符类型的函数中出现的未丢弃的return...

27得票1回答
主函数允许使用占位符返回类型吗?

在C++14中,以下代码是否有效? auto main() { // ... } 即使我们不需要使用显式的return 0;,返回类型是否会推断为int?