Я использую g++ 4.4 для компиляции общей библиотеки в linux. Я хотел бы использовать некоторые возможности С++ 11, если я могу в библиотеке, но я не могу обновить версию компилятора или потребовать каких-либо специальных компиляторов для пользователей моей библиотеки.
У меня есть два вопроса, и мне трудно найти окончательный ответ.
-
Если я скомпилирую общую библиотеку с -std = С++ 0x или -std = g++ 0x, я гарантирую, что программа, использующая мою библиотеку, не нуждается в этих коммутаторах (при условии, что у меня нет С++ 0x в файлах заголовков)? Кажется, что это работает, но я не хочу подписываться на тонкие проблемы в будущем.
-
Стандартная библиотека для С++ 11 в g++ 4.4 довольно неполна. Поскольку большая часть стандартной библиотеки имеет только заголовок, а файлы заголовков gnu, как правило, заполнены версиями ifdefs, я бы подумал, что может быть способ использовать более новую версию, по крайней мере, файлов заголовков в libstdС++. Однако я не могу использовать другой .so для этого. Я уверен, что смогу смешать это вместе, но возможно ли сделать что-то подобное правильно?
Спасибо.