Also hier wäre mal eine solche, nicht funktionierende "Lösung":
Code:
#include <map>
#include <string>
using namespace std;
template<string, string> class DefKeyMap : public Map<string,string>
{
public:
DefKeyMap(string defkey);
string operator[](const string key);
private:
string defkey;
};
DefKeyMap::DefKeyMap(string defkey)
{
this.defkey = defkey;
}
string& DefKeyMap::operator[](const string key)
{
try {
return Map<string,string>[key];
} catch (...) {
return Map<string,string>[defkey];
}
}
Aus den Fehlermeldungen werde ich allerdings nicht wirklich schlau...
Code:
defkeymap.cpp:6: error: `struct std::basic_string<char, std::char_traits<char>,
std::allocator<char> >' is not a valid type for a template constant
parameter
defkeymap.cpp:6: error: `struct std::basic_string<char, std::char_traits<char>,
std::allocator<char> >' is not a valid type for a template constant
parameter
defkeymap.cpp:6: error: parse error before `<' token
defkeymap.cpp:10: error: `std::string operator[](std::basic_string<char,
std::char_traits<char>, std::allocator<char> >)' must be a nonstatic member
function
defkeymap.cpp:10: error: `std::string operator[](std::basic_string<char,
std::char_traits<char>, std::allocator<char> >)' must take exactly two
arguments
defkeymap.cpp:11: error: parse error before `private'
defkeymap.cpp:15: error: syntax error before `::' token
defkeymap.cpp:20: error: syntax error before `::' token
Gruß,
/dev
Lesezeichen