涛 的个人资料徒然草的新园子照片日志列表更多 工具 帮助
2009/3/3

why virtual template function is not allowed?

 

Guys, have you ever thought about this question?

I was wondering if it's possible to have a virtual template function. That is have a class, that has as one of its member functions a templated function that is also pure virtual.

ie.

Class A {

template <class T>
virtual int foo ( T & param ) = 0;
}

// class B is dervied from class A
Class B : public class A {

template <class T>
int foo (T & param) {
// implement foo...

}

}

 

Hints provided by another guru:

Graham

February 23rd, 2003, 07:37 AM

Think about it for a while: how could you make a templated virtual function? What's its signature? How many vtable entries do you reserve? How would you distinguish between an override/hide and an overload?

 

But, though c++ dose not allow virtual template function, you can also implement this function using boost::any, search for boos::any J.

Best regards,

Xie,  Tao

 

评论

请稍候...
很抱歉,您输入的评论太长。请缩短您的评论。
您没有输入任何内容,请重试。
很抱歉,我们当前无法添加您的评论。请稍后重试。
若要添加评论,需要您的家长授予您相应权限。请求权限
您的家长禁用了评论功能。
很抱歉,我们当前无法删除您的评论。请稍后重试。
您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
完成下面的安全检查,您提供评论的过程才能完成。
您在安全检查中键入的字符必须与图片或音频中的字符一致。

若要添加评论,请使用您的 Windows Live ID 登录(如果您使用过 Hotmail、Messenger 或 Xbox LIVE,您就拥有 Windows Live ID)。登录


还没有 Windows Live ID 吗?请注册

引用通告

此日志的引用通告 URL 是:
http://xietao.spaces.live.com/blog/cns!E51FB178705E0AD0!1672.trak
引用此项的网络日志