0
プライベート定数クラスメンバーにアクセスする次の2つの実装の違いは何ですか?constクラスメンバーの自動控除
// Auto& (compile ok)
class Foo {
private:
const int _foo;
public:
Foo(const int& in) : _foo(in) {}
auto& foo() { return _foo; }
}
// Explicit type (compiler error)
class Foo {
private:
const int _foo;
public:
Foo(const int& in) : _foo(in) {}
int& foo() { return _foo; }
}
はauto
では、コンパイラは文句はありませんが、実際には、明示的なint
型宣言は、(const性によるものである)コンパイラのエラーを示します。この場合、auto
は推測されますか?
サイドノート:あなたがしていることを知っていることを確認してください。 const参照を使用するときのセマンティクス。 See [int vs const int&](http://stackoverflow.com/a/4705871/211160)。そしてintを返すよりも遅くなる可能性があることに注意してください。 – HostileFork