C++11内存模型

Introduction

void undefined_behaviour_with_double_checked_locking() {

if (!resource_ptr) { // 1

std::lock_guard<std::mutex> lk(resource_mutex);

if (!resource_ptr) { // 2

resource_ptr.reset(new ......