[C++] Шаблонный конструктор
Походу семантикой не предусмотрен вызов шаблонного конструктора, в случае, когда компилятор не может сам сдедуктить аргументы шаблона (в данном случае, никаких аргументов у конструктора нет). А конструкция "new OMG<int>" пытается создать экземпляр шаблонного класса, а не обычного с вызовом шаблонного конструктора.
компилятор ругается:
Но даже если бы этот грязный хак и сработал, то это было бы очень-очень плохо. Так что советую пересмотреть свои классы, конструкторы и прочее.
компилятор ругается:
class A
{
public:
template <class T> A { }
};
int main
{
A *a;
a = reinterpret_cast<A*>(new char (sizeof(A;
a->A::A<float>
a->A::~A;
}
Но даже если бы этот грязный хак и сработал, то это было бы очень-очень плохо. Так что советую пересмотреть свои классы, конструкторы и прочее.
>нешаблонный класс с шаблонным конструктором
мне вот интересно, зачем это нужно
мне вот интересно, зачем это нужно

Чтобы базовый класс был одного типа. Если делать класс шаблонным, то типы будут разные.
обычно такое обходится через dummy-параметр и маскируется через фабрику
class Q
{
template <typename T>
private Q(T *dummy){}
template <typename T>
public static Q * Create<T>
{
return new QT*)0);
}
};
Точно, можно и так делать 
Спасибо.

Спасибо.
Оставить комментарий
erotic
Есть нешаблонный класс с шаблонным конструктором, шаблон по типу. У конструктора параметров нет, так что тип по параметрам не выводится и должен быть указан явно. И тут главный косяк:Пока приходится обходиться шаблонной функцией, которую надо вызвать сразу после конструктора, с ней-то проблем нет. Но может быть кто-нибудь знает - можно ли все-таки вызвать шаблонный конструктор?