Просто любопытно, не делают ли инструменты GCC или Clang эквивалент MSVC идентичное сложение COMDAT (ICF) в настоящее время? Если нет, есть ли планы? Кажется, я не могу найти никаких авторитетных ссылок по этому вопросу, кроме старых сообщений списка рассылки GCC.
Если это не так, означает ли это, что экземпляры шаблонов над отдельными типами всегда являются различными функциями в результирующем двоичном файле (в ситуациях, когда они не полностью встроены), даже если они совместимы с бинарниками или существуют другие механизмы на месте для обработки этого на каком-то другом уровне?
Кроме того, кто-нибудь нашел, что ICF имеет большое значение для минимизации размера исполняемого исполняемого файла на практике? У меня нет больших проектов MSVC, которые можно было бы проверить. (Я предполагаю, что это действительно помогает, если вам удалось создать шаблоны для разных типов совместимых с vtable-макетами.)
Наконец, совместим ли он с С++ 11 для двух функций, указателей на разные функции, чтобы сравнивать их во время выполнения? Эта ссылка, кажется, подразумевает, что это не так, но это для C99. EDIT: нашел предыдущий вопрос по этому вопросу