Если у меня есть функция шаблона в отдельном блоке компиляции (который создает объектный файл с суффиксом .o из Cuda C Compiler nvcc) < /p>
Допустим, у нас есть определение (реализация) < /p>
template
void foo(T a){
// something
}
< /code>
для создания явного кода в файле объекта, чтобы иметь возможность ссылаться на него из другого блока компиляции, мне необходимо ясно создать этот шаблон (для всех параметров шаблона, которые мне нужны) это: < /p>
template void foo(double a);
template void foo(double a);
< /code>
выполнение этого результата в фактическом коде в файле объекта. < /p>
Делать другое, например: < /p >
template void foo(double a);
template void foo(float a);
< /code>
не производит код в объектном файле, потому что это полное объявление шаблона шаблона < /strong>. Это правильно? < /P>
также < /p>
void foo(double a);
void foo(float a);
< /code>
Не производит код, потому что это было бы объявление о перегрузке < /strong>? Правильно ли это?
Подробнее здесь: https://stackoverflow.com/questions/238 ... bject-file