Элегантное решение для дублирования, константных и неконстантных геттеров? [дубликат] ⇐ 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, потребуется приведение типов.
Есть ли действительно элегантное решение этой проблемы, если нет, то какое наиболее близкое к нему?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Частичная специализация шаблона класса для константных и неконстантных указателей
Anonymous » » в форуме C++ - 0 Ответы
- 68 Просмотры
-
Последнее сообщение Anonymous
-