gpt4 book ai didi

c++ - 使用私有(private)成员变量的返回类型推导

转载 作者:IT老高 更新时间:2023-10-28 22:02:23 29 4
gpt4 key购买 nike

正如本文中所解释的 Q&A yesterday ,g++ 4.8 和 Clang 3.3 都正确地提示下面的代码错误,比如“'b_' is not declared in this scope”

#include <iostream>

class Test
{
public:
Test(): b_(0) {}

auto foo() const -> decltype(b_) // just leave out the -> decltype(b_) works with c++1y
{
return b_;
}
private:
int b_;
};

int main()
{
Test t;
std::cout << t.foo();
}

private 部分移动到类定义的顶部可以消除错误并打印 0。

我的问题是,这个错误是否也会在 C++14 中通过返回类型推导消失,这样我就可以省略 decltype 并拥有我的 private 类定义末尾的部分?

注意:actually works基于@JesseGood 的回答。

最佳答案

不,但不再需要这个,因为你可以说

decltype(auto) foo() const { 
return b_;
}

这将自动从其主体中推断出返回类型。

关于c++ - 使用私有(private)成员变量的返回类型推导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16800578/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com