Я ищу вариант компилятора на g ++ / clang ++ для управления экземплярами методов в явных экземплярах.
Предположим, у меня есть шаблон класса Foo<T>
с какой-то явной реализацией
template Foo<int>;
Я хочу включить создание экземпляров всех открытых методов. Это не похоже на значение по умолчанию, так как мне приходится добавлять экземпляры вручную для всех участников, чтобы избежать ошибок ссылок;
template void Foo<int>:DoStuff(int);
template int Foo<int>:GetSomeStuff();
Вы можете создать экземпляр каждого метода по отдельности или создать все экземпляры для класса. Кажется, ты хочешь сделать последнее, но нотация, которую ты попробовал, неверна. Правильный это:
template class Foo<int>;
(при условии, Foo
объявлен как class
; если он объявлен как struct
вы бы использовали struct
ключевое слово вместо).