我正在开发一个
对于
然而,以下代码似乎无法编译:
XmlWriter
类,希望能够以大多数标准数据格式(如字符串、整数、浮点数等)输出属性或文本。为此,我使用了文件流。对于
bool
数据类型,我想指定一个特殊化的模板,以便它输出true
和false
,而不是1
和0
。然而,以下代码似乎无法编译:
class XmlWriter {
private: /* ... */
public: /* ... */
template <typename T>
void writeText(T text) {
/* ... */
}
template <> // <-- error: explicit specialization in non-namespace scope 'class Strategy::IO::XmlWriter'
void writeText<bool> (bool text) { // <-- error: template-id 'writeText<>' in declaration of primary template
/* ... */
}
template <typename T>
void writeAttribute(std::string key, T value) { // <-- error: too many template-parameter-lists
/* ... */
}
template <> // <-- error: explicit specialization in non-namespace scope 'class Strategy::IO::XmlWriter'
void writeAttribute<bool> (std::string key, bool value) { // <-- error: variable or field 'writeAttribute' declared void; expected ';' before '<' token
/* ... */
}
}; // <-- expected ';' before '}' token
我不明白,既然我使用了互联网上各种网站上呈现的正确语法,为什么还会出现这些错误?
我正在使用Cygwin GCC。
void writeText(bool text);
。 - hmjd