Определение шаблона после использования
От: andrey.desman  
Дата: 03.04.18 20:07
Оценка:
#include <cstdio>

const char* name;

template<typename T>
void set_name(const char* n, T a);

void foo()
{
    set_name("test", 11);
}

template<typename T>
void set_name(const char* n, T a)
{
    name = n;
}

const char* get_name()
{
    return name;
}

int main(int argc, char* argv[])
{
    foo();
    printf("%s\n", get_name());
    return 0;
}


Почему этот код линкуется? Компилятор "собирает" запросы на инстанцирование?
И должен ли по стандарту?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.