Элегантное решение для дублирования, константных и неконстантных геттеров? [дубликат] ⇐ C++
-
Гость
Элегантное решение для дублирования, константных и неконстантных геттеров? [дубликат]
Разве вы не ненавидите это, когда у вас есть
класс Foobar { публика: Something& getSomething(int index) { // большой, нетривиальный кусок кода... вернуть что-либо; } const Something& getSomething(int index) const { // большой, нетривиальный кусок кода... вернуть что-либо; } } Мы не можем реализовать ни один из этих методов вместе с другим, поскольку вы не можете вызвать версию, отличную от const, из версии const (ошибка компилятора) . Для вызова версии const из версии, отличной от const, потребуется приведение типов.
Есть ли действительно элегантное решение этой проблемы, если нет, то какое наиболее близкое к нему?
Разве вы не ненавидите это, когда у вас есть
класс Foobar { публика: Something& getSomething(int index) { // большой, нетривиальный кусок кода... вернуть что-либо; } const Something& getSomething(int index) const { // большой, нетривиальный кусок кода... вернуть что-либо; } } Мы не можем реализовать ни один из этих методов вместе с другим, поскольку вы не можете вызвать версию, отличную от const, из версии const (ошибка компилятора) . Для вызова версии const из версии, отличной от const, потребуется приведение типов.
Есть ли действительно элегантное решение этой проблемы, если нет, то какое наиболее близкое к нему?
Мобильная версия