Что ж, это увеличивает инкапсуляцию, поскольку ваш заголовочный файл теперь содержит только открытые члены и один указатель на приватную реализацию.
Это также (немного?) Снижает производительность из-за дополнительного уровня косвенности.
Ключевым вопросом здесь является «сокращение времени компиляции».
Если вы (ваша компания) - единственные пользователи класса, тогда я не думаю, что у вас есть какие-либо причины использовать эту идиому.,Вы получаете более низкую производительность, и вам все равно придется ежедневно (или периодически) перестраивать ваш исходный код (который должен учитывать зависимости между классами).
Это означает, что время компиляции должно быть в значительной степени несущественным, если вы являетесь единственным потребителем класса.
Если вы распространяете библиотеку, тогда история совершенно другая.Изменения в заголовках означают, что любые ваши клиенты должны будут перестроить свои приложения для использования вашей новой версии, даже если вы изменили приватные части класса.Использование здесь идиомы pimpl означало бы, что изменение невидимо для пользователей вашей динамической библиотеки.