問題の機能縮小版を以下に示します。initializer_listとGCC 4.9.2
#include <initializer_list>
#include <iostream>
enum objects { zero, one, two, three, four, five, six, seven };
std::initializer_list<objects> objects_list()
{
return { zero, one, two, three, four, five, six, seven };
}
int main()
{
for (auto a : objects_list())
{
std::cout << a << ' ';
}
std::cout << '\n';
}
私の期待はあるが、そのプログラムの出力:
0 1 2 3 4 5 6 7
によって確認済みれますGCC 4.9.2ですが、gitリポジトリから新鮮なGCCは、
0 0 -85997960 32712 -1076836160 32765 0 32
となり、基本的には乱数のようです。
私のプログラムやGCCに問題はありますか?
私はgcc 7.1.1を5月下旬から持っています。私は再現できません。たぶん、いくつかの新しいプル要求がこのバグを紹介したのだろう – Rakete1111
ここでは重要ではありませんが、ループ内でコピーを必要としないときはいつも 'for(const auto&a:...')を使用します。 –
[ここで再現可能](https: /wandbox.org/permlink/s40JCmvSLE8doIO2)。非常に奇妙です。 – NathanOliver