我有一个带有模板类的 Visual Studio 2008 C++ 项目,该模板类在构造函数中采用模板化值,如下所示:
template< typename A >
struct Foo
{
const A& a_;
Foo( const A& a ) : a_( a ) { };
};
因此,我必须这样构造这个类:
int myval = 0;
Foo< int > foo( myval );
必须指定似乎是多余的int
当它已在构造函数中指定时作为模板参数。我想要一些像这样使用它的方法:
Foo foo( myval );
按原样,我收到编译器错误:
error C2955: 'Foo' : use of class template requires template argument list
谢谢,
保罗·H
C++17 fixed本期,介绍构造函数的模板参数推导.
Citing 赫伯·萨特:
[...]你可以只写pair p(2, 4.5);
代替pair<int,double> p(2, 4.5);
or auto p = make_pair(2, 4.5);
。这非常好,包括它淘汰了许多“make”助手。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)