Я прихожу из фона С# и недавно начал изучать С++. Одна из вещей, с которыми я столкнулся, - это идиома прыгуна. Я занимался разработкой С# для некоторых крупных фирм, но никогда не сталкивался с этим.
Возможно, это неправильно, но я понимаю, что это необходимо в С++ из-за использования файлов заголовков и без частичного класса.
Но в С# мы будем постоянно создавать приложения, используя библиотеки классов. Если что-то изменилось в коде библиотеки, мы перекомпилируем его в dll и ссылаемся на новую dll в проекте приложения.
Я действительно не понимаю, почему то же самое нельзя делать с С++. Pimpl просто выглядит как уродливый хак для меня.