pveglia@gmail.com wrote:
Quote:
Hi everyone,
i've got a problem with a template function member of a non-template
class. My code is the following:
>
class PropMap
{
private:
std::map<std::string, void*properties;
std::map not declared
std::string not declared
You forgot to #include <mapand <string>
Quote:
public:
template<typename T>
T getProperty(std::string key)
{
return reinterpret_cast<T>(properties[key]);
}
>
>
template <typename T>
Quote:
T setProperty(std::string key, T value)
{
return reinterpret_cast<T>(properties[key] = value);
}
};
>
when i try to call the "getProperty" method:
>
int* i = getProperty<int*>("pos");
PropMap pm;
int *i = pm.getProperty<int*>("pos");
compiles on my g++. You should post a minimal, but complete program that
shows the error.
Quote:
>
I get the error: "expected primary function". I think gcc doesn't know
that getProperty() is a template by I don't know why.
It isn't. PropMap::getProperty is.
--
rbh