如何扩展 C++ 中现有的模板?
我正在使用一个模板的遗留代码,该代码基于
template<class keyType, class dType> Foo Bar(const dType val)
该代码中的某个地方,有人制作了这样的调试函数:
virtual void getDebugStr01(int db_id, OFCString & db_str)
{
//OFCStringStream ss;
if(db_id==0)
{
map<keyType, dType>::iterator it = m_stateData.begin();
for(;it!=m_stateData.end();it++)
{
(it->second).getDebugStr01(db_str);
}
}
}
现在,我需要使用带有浮点数的模板类。有办法做到这一点吗?
目前我得到:
error C2228: left of '.getDebugStr01' must have class/struct/union
I am working with legacy code of a template that is based on
template<class keyType, class dType> Foo Bar(const dType val)
Somewhere in that code is a place where someone made a debug function like this:
virtual void getDebugStr01(int db_id, OFCString & db_str)
{
//OFCStringStream ss;
if(db_id==0)
{
map<keyType, dType>::iterator it = m_stateData.begin();
for(;it!=m_stateData.end();it++)
{
(it->second).getDebugStr01(db_str);
}
}
}
Now, I would need to use the template class with a float. Is there anyway to do this?
Currently I get a:
error C2228: left of '.getDebugStr01' must have class/struct/union
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
getDebugStr01()
应该是class/struct
的成员。虚拟
方法不能独立存在。你可以做类似的事情,
getDebugStr01()
should be a member of aclass/struct
.virtual
methods cannot be stand alone.You can do something like,