【发布时间】:2018-07-17 12:01:09
【问题描述】:
我有一个模板函数template< template< class > class Timg, class T > Timg< T > foo() 的模板,编译器无法为其推断类型。我可以用foo< object, T >() 调用这个函数,其中object 是一个模板类。我希望能够使用decltype 或类似的方式调用此函数。
这里是一个例子:第一个文件是header.h
template< class T >
class object
{
};
template< template< class > class Timg, class T >
Timg< T > foo()
{
return Timg< T >();
}
第二个文件是main.cpp
#include "header.h"
int main()
{
object< float > o;
auto l_return = foo< object, float >(); // OK
auto l_return2 = foo< decltype(o), float >(); // What I would like to achieve
return 0;
}
这里的问题是decltype(o) 返回object< float >,但我想只有object。
如何从变量o 推断类型以将其作为函数foo 的模板参数传递?
【问题讨论】:
标签: c++ class templates decltype type-deduction