C++ template class auslagerung Fehler

DuffCola

Mitglied
Wenn ich von einer template klasse eine Funktion auslagern will,
wie geht das?
So bekomme ich immer nen Fehler:
Code:
template<class T>
class BaseProperty
{
private:
	T value;

public:
	const std::string id;

	const T &getValue();
	void setvalue(const T &value);

	BaseProperty(const T &value);
};


// Definition
const T &BaseProperty::getValue()
{
	return value;
}

void BaseProperty::setvalue(const T &value)
{
	this->value = value;
}

BaseProperty::BaseProperty(const T &value)
{
	this->value = value;
}
 
Hallo,

du müsstest die Methoden nach diesem Schema aufschreiben:
Code:
template<class T> RType Classname<T>::Method(...)
{
    ...
}
Gruß
MCoder
 
Zudem sei erwähnt: Templates kannst du nicht in .hpp und .cpp aufteilen, wenn das Template irgendwo verwenden willst musst du alles vorhanden haben.
 
Theoretisch ginge das mit dem Keyword extern, aber das unterstützt quasi kein Compiler (Comeau war meines Wissens der Einzige).

D.h. das wird vermutich nichts.
 
Zurück