Здравствуйте, B0FEE664, Вы писали:
S>>Из-за чего она возникла -- ошибки в дизайне или отшибки в ДНК спорящих на RSDN -- вообще не важно. BFE>Да, причина не важна. Хотелось бы другого — понять в чём, собственно, проблема.
А что вам не понято в исходном примере?
Тип D должен быть отнаследован непосредственно от A и B, в A и B не должно быть никаких оберток над f, в типе D нужно явно указывать какую из реализаций f мы переопределяем (а в новой реализации нужно еще и явно дернуть унаследованную версию f из нужного класса).
Если вам непонятно нахера это надо, то подумайте вот о чем: есть ли практический смысл в задачках вида "напишите самую длинную последовательность из ключевых слов C++, которая была бы валидным компилирующимся выражением, по типу inline constexpr const char * const f()" кроме как гимнастика ума и банальная эрудиция?
Вот мой пример из этой же области.
Но если вы продолжите демонстрировать ширину и глубину мысли, приплетая сюда собственные фантазии о том, а чтобы сказал Страуструп, то давайте закончим и не будем морочить друг другу голову.