Учитывая следующий код:
template<typename T>
struct A
{
void f(){...}
friend T;
};
template<typename T>
struct B
{
void f(T){...}//code depends on T
void g(){...}//code doesn't depends on T
}
Как видите, "код" в struct A не зависит от T.
Будет ли компилятор генерировать другой код в последнем двоичном файле для каждого T, используемого для создания экземпляра A?
Тот же вопрос для функции B::g(), будет ли компилятор использовать одну и ту же функцию для всех экземпляров B<T>, когда это возможно, например this не используется в g(), поэтому не зависит от T? Имеет ли стандарт какой-либо спецификации для этого случая?