std::shared_mutex не является членом std?

Есть проект на 2015 студии. Сейчас установил 19 студию и при сборке появляется ругань на "std::shared_mutex не является членом std". #include есть. чем лечится?


Ответы (2 шт):

Автор решения: goldstar_labs

std::shared_mutex является частью с++17. В студии для использования даного функционала необходимо включить поддержку 17-го стандарта:

Project->Properties->C++->Language->C++ language standard = ISO C++17 Standard (/std:c++17)

Конечо же не забыть:

#include <shared_mutex>
→ Ссылка
Автор решения: KoVadim

shared_mutex появился в с++17. Я сильно сомневаюсь, что студия 2015, которая выпущена в 2014 (когда только появился с++14) знает о нем (бывают и исключения конечно).

Как лечить? перейти на 2017 или 2019 студию. Или использовать свеженький clang.

Если это не подходит - можно сделать и свой shared_mutex.

→ Ссылка