У меня есть источник для большой ( > 250 файлов) библиотеки, которая сильно использует контейнеры и строки STL. Мне нужно запустить его во встроенной среде с ограниченной кучей, поэтому я хочу убедиться, что сама эта библиотека ограничена в использовании кучи.
Очевидным решением является создание распределителя, но изменение всей базы кода для включения параметра шаблона распределителя является большой задачей в крайнем случае и нежелательным, если я когда-либо захочу использовать новую версию источника. Глобальная замена нового и удаления невозможна, поскольку это влияет на все изображение, а не только на эту библиотеку.
Моя следующая мысль была глупым трюком C макроса, но это не похоже, что это было бы возможно, хотя я признаю, что не являюсь умным автором макроса.
Итак, я подумал: "Есть ли компилятор или прагма-переключатель для указания класса allocator < > class во время компиляции"? Но я открыт для всего.
Следующий вопрос, который я спрошу, может ли кто-нибудь придумать решение, заключается в том, как сделать то же самое для new/delete в наборе файлов, содержащих эту библиотеку.
Я использую toolchain gcc 3.4.4 для запуска этого в Cygwin с целью VxWorks, если это искрометные идеи.