В Linux, с помощью GCC 4.8.4, составленный с -std = C++ 11 -mcx16:Segfault в std :: атомная нагрузка?
#include <atomic>
struct node_t;
struct pointer_t {
node_t* ptr;
unsigned int count;
pointer_t() noexcept : ptr{nullptr}, count{0} {}
};
struct empty {};
struct node_t {
empty value;
std::atomic<pointer_t> next;
node_t() : next{pointer_t{}} {}
};
int main() {
node_t{}.next.load();
return 0;
}
дает Segfault когда load
называется. Как я хотел инициализировать атомную ценность?
Как и в случае сбоя, суффикс '_t' зарезервирован для систем POSIX. –
Я не вижу объявления 'pointer_t :: load()' в любом месте ... – Kevin
@BetaCarotin да, я просто прямо переводил https://www.cs.rochester.edu/research/synchronization/pseudocode/ queues.html :) –