私はこのような機能の束書いている:簡素化作業
template <>
Error SyntaxError<unfinished_string>(unsigned int line) {
std::stringstream message;
message << "SyntaxError: unfinished string (starting at line " << line << ").";
return Error(Error::Type::syntax, message.str());
}
template <>
Error SyntaxError<malformed_number>(std::string number, unsigned int line) {
std::stringstream message;
message << "SyntaxError: malformed number (" << number << ") at line " << line << '.';
return Error(Error::Type::Syntax, message.str());
}
...
をそして、このような何かを見可変引数関数/マクロを持つことが悪いではないでしょう。
Error proto(/*variable number & type of arguments*/) {
std::stringstream message;
message << "SyntaxError: " << /*arguments passed, separated by <<s */;
return Error(Error::Type::syntax, message.str());
}
私はその後、私のような機能を記述することができるように:
template <>
Error SyntaxError<unfinished_string>(unsigned int line) {
return proto("unfinished string (starting at line ", line, ").");
}
template <>
Error SyntaxError<malformed_number>(std::string number, unsigned int line) {
return proto("malformed number (", number, ") at line ", line, '.');
}
が可能万が一ということですか?どうすればいいですか?
なぜ人々が投票を締結したのかよく分かりません。答えは「はい」です。本当の答えを一秒でまとめるつもりです。 – xaxxon
いくつのバージョンが必要ですか? 'Error'にコンストラクタを追加できますか? ['std :: system_error'](http://en.cppreference.com/w/cpp/error/system_error/system_error)と同様です。 –