模板参数包不能推断出`const&'参数

时间:2016-12-15 04:35:20

标签: c++ c++14 variadic-templates

所以我有一个班级:

const

并且模板会根据需要生成非int& test(C& c) { int i = 4; int& r = c.get(i); return r; } getter,因此这变得合法:

  int const& get(int const& i) const { return x[i]; }

但如果我将原始getter的参数类型更改为引用:

const

const getter模板不再与int getter匹配。

显然,按值传递const没什么大不了的,并且将参数列表明确地传递给模板没什么大不了的,但是我有更复杂的参数和大量的重载,并且我想用最少的复制粘贴来推断我的所有非 int& get(int const& i); 吸气剂。

有没有办法解决这个问题?

我有一个想法是我可以在类中声明问题参数列表但是将定义留给模板,这样参数匹配就会有一些指导。我尝试将以下内容添加到类中(在模板之前或之后):

inline

不幸的是,这完全绕过了模板并导致链接错误。在声明中添加template或{{1}}似乎也没有。

1 个答案:

答案 0 :(得分:2)

为什么通过指向成员函数的辅助指针强制调用const成员函数?在这种情况下,我使用const的{​​{1}}资格:

this