Autsch! Danke
Ich prüf dann doch mal lieber auf False, das kann ja nur in zwei Fällen eintreten.
Edit: Jetzt bin ich platt ... Der umgestellte Code tuts auch nicht:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
template<>
bool getKeyAs(const std::string& section, const std::string& key)
{
// Retrieve the value of the key and transform it to lowercase
std::string value = getKey(section, key);
std::transform(value.begin(), value.end(), value.begin(), tolower);
std::clog << "Converting " << section << "|" << key << "(=>" << value << ") to bool ...";
// Everything "false" or "0" means false
bool ret;
if (value == "false" || value == "0")
ret = false;
else
ret = true;
std::clog << " returning " << ret << std::endl;
return (ret);
}
|
Der Code funktioniert, wenn ich statt "false" einfach "0" schreibe, aber ansonsten ...
|
Quellcode
|
1
2
|
Converting WoRD|debug(=>0) to bool ... returning 0
Converting WoRD|debug(=>false) to bool ... returning 1
|
Was kann ich denn jetzt noch übersehen haben?
Und wegen dem gcc: Weiß hier jemand, ob der Spezialisierungen von "reinen" Methodentemplates echt nicht beherrscht? Ich hab jetzt einige Varianten ausprobiert, aber die kompilieren entweder garnicht erst oder rufen die spezialisierte Variante nicht auf.