Речь идет о
http://www.ddj.com/dept/cpp/184403760
http://www.gotw.ca/publications/mill18.htm
По работе столкнулся с NVI и возникли вопросы.
1. Неубедительная мотивация для использование NVI.
Читал Herb Sutter но не проникся , вот хочу узнать у того кто проникся , чем обосновано усложнение класса, оверхед на двойную диспечирезацию и т.п
По сравнению с абстрактными интерфейсами .
Добавлю, что абстрактные интерфейсы вводились в C++ именно с целью , заменить PIMPL и другие самопалки.
a. Мотивация при использовании классов , которые предполагают наследование от них
b. Мотивация при использовании классов , которые НЕ предполагают наследование от них.
Уверен , что такая мотивация есть , не высасывал же Сатер это все из пальца ....
2. Укажите преимущества перед абстрактными интерфейсами ( имеются ввиду абстрактные виртуальные функции).
И укажите преимущества перед PIMPL (без виртуальности).
3. Особенно интересует этот момент из контекста...
"And you would never make the virtual function public. All public functions would be non-virtual."
Т.е. рекомендация которая ЯВНО и насквозь противоречит архитектуре самого языка C++ , смотреть Страуструпа.
Готов к конструктивной критике , в надежде на то , что разберусь в вопросе.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>