Re: Template member function
Robert Bauck Hamar wrote:
pveglia@gmail.com wrote:
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 <map> and <string>
public:
template<typename T>
T getProperty(std::string key)
{
return reinterpret_cast<T>(properties[key]);
}
template <typename T>
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.
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.
Thank you for your reply!
I wrote a little esample using that class and it works, but I still
can't compile my program. Unfortunately I'm not able to reproduce the
error with an example.