IZ
Size: a a a
IZ
AS
К
К
LA
#include <iostream>
template<typename T>
struct X {
void foo() {}
void bar() {}
};
template<>
void X<int>::bar() { std::cout << "bar\n"; }
int main(int argc, char *argv[])
{
X<int> x;
x.bar();
x.foo();
}
= delete
метода для конкретно такой ситуации её определение становится частью объявления, и поэтому на основе несоответствия сигнатур такая частичная специализация метода должна отвергаться, однако если я правильно мыслю(?), то почему разрешено(?) переопределить в частичной специализации метод, с уже наличествующим определением? То есть оба этих определения существуют, но конкретная специализация создаётся именно с определением наиболее специализированного метода? И почему тогда всё же играет роль = delete
, если можно было бы точно так же просто откинуть это определение?d
FS
d
FS
Н
Н
АВ
K
Н
K
АВ
Н
Н
K
АВ