auto相关内容

功能中的自动参数类型

我想知道标准委员会是否考虑过扩展C ++ 14 auto关键字来推导函数模板参数类型,就像今天在通用lambda中所存在的那样. (从这个答案中可以很好地看到) 因为它可以在lambda函数中使用,所以它也应该可以在任何函数中使用.当然,使用经典语法完全是多余的: template void f(T param); 但是能够写出同样的结果: voi ..
发布时间:2020-09-14 04:34:00 C/C++开发

在C ++中使用后缀的任何优势

我的问题与在C ++中使用"s"后缀有关? 使用"s"后缀的代码示例: auto hello = "Hello!"s; // a std::string 可以这样写: auto hello = std::string{"Hello!"}; 我能够在网上找到应该使用"s"后缀来最大程度地减少错误并在代码中阐明我们的意图. 因此,使用"s"后缀仅对代码读者有用吗?还是使 ..
发布时间:2020-09-14 04:32:54 C/C++开发

GCC的decltype(auto)是否不符合标准?

我尝试使用不同的选项在GCC 8.2下编译此C ++代码,但它始终会成功,不会产生警告并输出true: int && a = 123; decltype(auto) b = a; std::cout ::value; 与此同时,相同的代码将无法在Clang中编译,如果我对标准的理解是 ..
发布时间:2020-09-14 04:31:45 C/C++开发

具有和不具有指针声明符的C ++ 11自动声明

bar1和bar2的类型有什么区别? int foo = 10; auto bar1 = &foo; auto *bar2 = &foo; 如果bar1和bar2均为int*,在bar2声明中写入指针声明符(*)是否有意义? 解决方案 声明完全相同. auto的工作原理(几乎)与模板类型推论相同.明确地加星号使代码更易于阅读,并使程序员意识到bar2是指针. ..
发布时间:2020-09-14 04:30:38 C/C++开发

功能模板与自动关键字

C ++ 11中的auto关键字可以代替功能模板和专业化功能吗?如果可以,使用模板函数和专业化方法比仅将函数参数键入为auto有什么优势? template void myFunction(T &arg) { // ~ } vs. void myFunction(auto &arg) { // ~ } 解决方案 总而言之,auto不能 ..
发布时间:2020-09-14 04:29:36 C/C++开发

自动变量,用于存储指向std :: max的函数指针

我正试图将函数std::max作为模板参数传递给模板化函数,但是由于某些原因,编译器会打印无法推断出函数类型的错误.一个简单的例子也重现了同样的问题.它可以与自己的max2函数一起使用,但不能与STL std::max: 一起使用 #include template T max2(const T& a, const T& b) { return s ..
发布时间:2020-09-14 04:28:30 C/C++开发

c ++ 11中的自动引用

我在about自动引用时遇到了麻烦. const int i = 1; auto & ri1 = i; auto & ri2 = 1; //error 为什么推导出ri1 const int而不是ri2类型? 谢谢! 解决方案 由于i具有类型const int,而1具有类型int. ..
发布时间:2020-09-14 04:27:28 C/C++开发

if-else中的C ++ 11 lambda函数定义

我该如何做,但要采用可以编译的方式,并希望没有疯狂的typedef,该怎么做? auto b; auto g; if (vertical) { b = [=, &b_](int x, int y) -> bool { return b_[x + y*w]; }; g = [=, &g_](int x, int y) -> int& { return g_[x + y*w]; ..
发布时间:2020-09-14 04:27:27 C/C++开发