考虑以下函数原型:
void Remove(SomeContainer& Vec, const std::size_t Index);
SomeContainer Remove(SomeContainer Vec, const std::size_t Index);
第二个是按照第一个来执行的。也就是说,除了一个是按引用传递而另一个是按值传递之外,它们在各个方面在功能上都是相同的。
然而,GCC 说在这种情况下这些是模棱两可的,即使第一种形式是唯一不返回值的形式:
Remove(SomeContainer, 123);
是否有任何解决方法,或者我必须为每个表单提供不同的名称?