gpt4 book ai didi

c++ - 在 clang 中返回 std::initializer_list

转载 作者:可可西里 更新时间:2023-11-01 16:14:56 25 4
gpt4 key购买 nike

<分区>

考虑这个代码示例:

#include <initializer_list>
#include <iostream>

int main()
{
for(auto e: []()->std::initializer_list<int>{return{1,2,3};}())
std::cout<<e<<std::endl;
return 0;
}

我尝试用 g++ 编译它(gcc 版本 4.9.2 (Debian 4.9.2-10))并且输出是正确的。在 clang++ (Debian clang version 3.5.0-9 (tags/RELEASE_350/final) (based on LLVM 3.5.0)) 中输出例如:

0
2125673120
32546

第一行始终为 0,最后两行“随机”

是clang的错误还是别的什么?我认为这个代码示例是正确的。

更新:

当 lambda 函数返回类型为其他类型(例如 std::vector 或 std::array)时,这段代码工作正常。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com