【发布时间】:2021-06-18 18:59:58
【问题描述】:
template<typename ...>
bool foo(std::tuple<std::string,float> bar...)
{
std::vector<std::tuple<std::string,float>> barList(bar...);
// ...
}
这似乎不会产生任何语法错误。编辑器中该行没有错误指示器,但编译器停止
[bcc32c 错误] Foo.cpp(117):包扩展不包含任何未扩展的参数包
我尝试在线阅读,但我发现的所有示例要么似乎不完整,要么我不清楚。
一个简单的答案,为什么这不能编译将不胜感激。
【问题讨论】:
-
解释一下:“这不会产生任何语法错误,但是编译器[报告语法错误]” -- 咦?该错误是语法错误。
-
@JaMiT Embarcadero 没有突出显示该行。
-
我不明白你在做什么。为什么
typename...参数未命名? -
我同意你的编译器。您使用了没有要扩展的东西的包扩展。还有什么好说的?也许你可以解释一下你想要那条线的意思? (另外,请指出您的编译器指出语法错误的位置。谢天谢地,您将代码精简到一个几乎最小的示例,但作为副作用,编译器的“第 117 行”报告不再有意义。 )
-
@YanickRochon 那又怎样? Embarcadero 不是你的编译器吗?只有 C++ 编译器才是 C++ 语法错误构成的权威。语法荧光笔的编写速度很快,但会牺牲一些准确性。
标签: c++ c++builder-10.4-sydney