C++11導入の後置返り値型がなかなか便利なので、よく使っています。
そこでメソッドにおけるconst
の付け方で ? となったので
備忘録として
結論
class Person {
int age;
auto cfunc() const -> const int {
return age;
}
...
メソッドのconst
メソッドのconst
は 2(3)種類あります。
1つは返り値がconst
であることを示すもの
2つはクラスの内容に変更を与えないことを保証するもの
これが普通のメソッドだとそれぞれこうなります。
class Person {
int age;
(1) (2)
const int cfunc() const {
return age;
}
...
これを後置文法に直したときどうするかにしばらく悩みました。
auto cfunc() -> const int const {
return age;
}
とか、多分(2)のconst
は最後に置くという思い込みがあったのかと
結局こうでした。
class Person {
int age;
auto cfunc() const -> const int {
return age;
}
...