Детали создания шаблона компиляторов GCC и MS

Может ли кто-нибудь предоставить сравнение или конкретные детали того, как создается экземпляр шаблона обрабатывается во время компиляции и / или компоновки в компиляторах GCC и MS? Этот процесс отличается в контексте статических библиотек, разделяемых библиотек и исполняемых файлов? Я нашел этот документ о том, как GCC обрабатывает его, но я не уверен, что информация по-прежнему относится к текущему положению вещей. Стоит ли использовать флаги они предлагают там при компиляции моих библиотек, например. -fno-implicit-templates ?

Что я знаю (может не обязательно быть правильным), так это то, что:

  • шаблоны будут созданы, когда фактически используемые
  • шаблоны будут созданы в результате явные экземпляры
  • создание дублированных экземпляров обычно обрабатывается путем складывания повторяющихся экземпляров или путем откладывания создания экземпляров до времени ссылки

44
задан wallyk 24 August 2011 в 21:30
поделиться