好吧,我在模板上挣扎。在我学到的this问题中,根本无法将类型说明符传递给函数,因此我的下一个方法是将类型传递给<>
。
想象一个函数模板foo<U>()
,它是模板类A
的成员函数。因此,如果我创建了一个对象A<T> a
,我可以使用任何类型调用a.foo<U>()
。
我如何编写等效的函数模板,以便传递a
和U
之类的wrappedFoo<U>(a)
?
重要需要符合C ++ 98
答案 0 :(得分:1)
您可以执行以下操作:
request.put({
url: url + db + id,
json: ' { "user": "Tom", "message": "Document 2" }'
}, function(){request(url + db + id, function(err, res, body) {
console.log(typeof (body));
console.log(body);
console.log(body.user + ' : ' + body.message);
})
});
难的部分是没有C ++ 11的template <typename U, typename T>
XXXX /* See below */
WrappedFoo(/*const*/ A<T>& a)
{
return a.template foo<U>();
}
的返回类型。
因此,如果返回类型确实取决于参数类型,则可以创建一个特征,如:
decltype
然后将template <typename U, typename T>
struct Ret
{
typedef U type;
};
template <typename T> struct Ret<T, A<T> >
struct Ret
{
typedef bool type;
};
替换为XXXX