【发布时间】:2017-05-10 02:01:24
【问题描述】:
考虑以下代码:
int main() {
auto l = [](auto){};
void(*p)(int) = l;
}
GCC 和 clang 都可以正常工作。
让我们考虑以下稍作修改的版本:
int main() {
auto l = [](auto...){};
void(*p)(int) = l;
}
在这种情况下,clang 仍然是 accepts it 而 GCC rejects it。
有什么理由应该拒绝这段代码还是编译器的错误?
我将打开一个问题,但我想知道是否存在任何可以由其中一个而不是由另一个执行的提案。
【问题讨论】:
-
GCC 编译器 (5.1.0) 告诉您它未实现:“抱歉,未实现:将使用 '...' 的 lambda 转换为函数指针”
-
@latedeveloper Ahahah... 我在手机上试过了,错误信息更短(可能被删掉了),而手机上的 Godbolt 远非用户友好。不错,没看到所以,我不会打开任何问题,他们已经知道了!!谢谢你。我要结束我自己的问题。
-
错误信息很清楚,这里没有实际问题。
-
你只是想要一顶帽子来投票结束你自己提出的问题,对吧?
-
@DavidHammen 老实说,我什至不知道这种帽子是否存在。我对那些东西没那么感兴趣。您希望我删除问题吗?我只是把它留给未来的读者,从我的角度来看,这比戴帽子更有意义。
标签: c++ gcc clang c++14 generic-lambda