Re: Template member function
"Paolo Veglia" <pveglia@gmail.com> wrote in message
news:f7nml5$8j3$1@aioe.org...
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.
I find it hard to believe you can't reproduce the error with an example.
Perhaps the example needs to be extremely large (like all your source) but
it should be possible. Without seeing what you're trying, we can't help.