joł,
tak jak w tytule: dziwi mnie skąd mutex wie, że ma chronić zmienną, którą jest po prostu linijkę nad nim, np:
some_value value;
std::mutex some_value_mutex;
//...później jakiś lock typu:
//std::lock_guard<std::mutex> lk(some_value_mutex);
jak some_value_mutex
wie, że ma "ochraniać" value
? magiczne sztuczki kompilatora?