LINUX.ORG.RU

Кто как борется с фактическим отсутствием приватных объявлений в C++?

 , ,


0

4

Как мы все знаем, private объявления де-факто являются частью интерфейса класса, их изменение приводит к перекомпиляции зависящего кода. Кто как обходит проблему? Из того, что я перепробовал:

 — непрозрачные ссылки на forward-объявления структур и функции для работы с ними;
 — публичная структура, которая агрегируется в класс-реализацию;
 — абстрактный класс, он же «интерфейс», от которого наследуется реализация.

Но у всех них есть свои недостатки. Есть ли какие-то иные приемы, которые я упустил?

★★★★

Последнее исправление: xaizek (всего исправлений: 1)
Ответ на: комментарий от byko3y

Хоп, и уже релизная сборка проекта на 50 тыс строк занимает полминуты.

Полминуты на проект? Хахахахахахах! У нас было по две-три минуты на один файл с кодом на Boost::Spirit >___<

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

У нас было по две-три минуты на один файл с кодом на Boost::Spirit >___<

вот еще одна причина вредности применения всяких там бустов и немеряных темплейтов на ровном месте.

alysnix ★★★
()
Ответ на: комментарий от hateyoufeel

Без оптимизаций с -O0 или -Ofast? Охренеть! Это и в Java, кстати, частенько такая же ботва с этой компиляцией

menangen ★★★★★
()
Ответ на: комментарий от Psilocybe

Ну кто ж виноват, что в C++ кроме как через жопу ничего нельзя.

Страуструп

Когда поднимаетсяя вопрос «кто ответит за Си и Питон» — я всегда спрашиваю: а кто заставлял строить на них огромные системы? Кто-то запставлял превращать программно-аппаратные комплексы в монолитный клубок из «программный код оптимизирован под процессоры, процессоры оптимизированы под конкретный программный код»? Который теперь уже не видится возможным распутать и создать альтернативную архитектуру, хотя в 70-х годах очень активно к этому стремились, смотри тот же p-code и UCSD-паскаль. Но вместо этого выбрали глубоко ненадежную и непортируемую сишную модель (непортируемая портируемость, ага), потому что этот костыль просто реализовывать и переносить между платформами вследствие малого размера. ПО крайней мер в 70-х так было, в 80-х это быстро стало не так и сишный код стал о-очень плохо портироваться, поскольку всё упирается в оптимизирующие компиляторы и асмовые функции, без которых сишный код еле ползает.

byko3y ★★★★
() автор топика
Последнее исправление: byko3y (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.