Я прыгнул в winnt.h
, и я узнал код следующим образом:
extern "C++" // templates cannot be declared to have 'C' linkage
template <typename T, size_t N>
char (*RtlpNumberOf( UNALIGNED T (&)[N] ))[N];
Я хотел бы задать следующие вопросы:
- Как работает
extern "C++"
? - - это переносимый среди GCC и Clang?
- Можно ли экспортировать все шаблоны с помощью этого синтаксиса?
В вопросе 3 я имею в виду, что я могу отделить declearation и определение шаблонов, а затем сгенерировать динамическую ссылку для шаблона без фактической реализации, используя этот трюк?