【发布时间】:2010-02-24 04:52:54
【问题描述】:
鉴于以下情况:
StreamLogger& operator<<(const char* s) {
elements.push_back(String(s));
return *this;
}
StreamLogger& operator<<(int val) {
elements.push_back(String(asString<int>(val)));
return *this;
}
StreamLogger& operator<<(unsigned val) {
elements.push_back(String(asString<unsigned>(val)));
return *this;
}
StreamLogger& operator<<(size_t val) {
elements.push_back(String(asString<size_t>(val)));
return *this;
}
有没有办法消除重复?我想使用模板,但我只希望它用于以下类型:const char* int、unsigned 和 size_t
【问题讨论】:
-
@anon:您是只希望这些类型使用它还是其他类型也可以使用它?换句话说,如果你尝试使用其他类型会发生什么?编译器错误或无操作或 push_back() 进入向量?
-
@Clifford:但没有一个比我的解决方案更性感。 :)
-
@Naveen:仅适用于那些类型;这就是我不想使用通用模板的原因。
-
@GMan:这就是我没有投票结束的原因。仅供参考。