小编mar*_*rkd的帖子

c ++ 11 std :: std :: atomic zero数组初始化失败编译?

在g ++ 4.7和g ++ 4.8.2下使用零初始化原子编译下面需要数小时.默认初始化的原子和零初始化的非原子编译立即.

#include <iostream>
#include <array>
#include <algorithm>
#include <atomic>

int main(int argc, char* argv[]) {

    //std::array<std::atomic<int>, 1000000>  arr;         // default initialization (i.e., random data) = FAST

    //std::array<int, 1000000>  arr={{}};     // zero init non-atomic = FAST

    //std::array<std::atomic<int>, 1000000>  arr{{}};   // zero initialization = FOREVER

    //std::array<std::atomic<int>, 1000000>  arr={{}};     // zero init via assignment = FOREVER

    std::array<std::atomic<int>, 1000000>  arr{};   // zero initialization = FOREVER

    std::cerr << "sum = " << std::accumulate(arr.begin(), arr.end(), 0) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

g++ -std=c++11 array.cpp …

gcc g++ c++11

8
推荐指数
1
解决办法
782
查看次数

标签 统计

c++11 ×1

g++ ×1

gcc ×1