K
klizardin
есть код
Понятно, что при вызове a2.get_fish() будет вызван конструктор struct A, а вот при вызове a1.get_fish() будет ли вызываться конструктор (long()) и специфицировано ли поведение этого конструктора? А также специфицированы ли другие конструкторы для базовых типов?
Код:
template <typename _Type>
struct AT
{
_Type& get_fish()
{
static _Type fish;
return fish;
}
};
struct A
{
};
void some_func()
{
AT<long> a1;
long v1 = a1.get_fish();
AT<A> a2;
A v2 = a2.get_fish();
}
Понятно, что при вызове a2.get_fish() будет вызван конструктор struct A, а вот при вызове a1.get_fish() будет ли вызываться конструктор (long()) и специфицировано ли поведение этого конструктора? А также специфицированы ли другие конструкторы для базовых типов?