[英]deducing return type to be type of template arguments method
我很难用英语确切地解释我的意思,但是以下不可编译的代码可能说明了我的意思:
template<class T>
auto fn(T t) -> decltype(T::method_call())
{
return t.method_call();
}
基本上,我希望函数返回T的方法返回的任何值。 实现此目的的语法是什么?
在C ++ 14中,您可以使用推导的返回类型简单地说:
template <typename T>
decltype(auto) fn(T t) { return t.method_call(); }
您还可以使用尾随返回类型指定相同的内容:
template <typename T>
auto fn(T t) -> decltype(t.method_call()) { return t.method_call(); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.