Есть простой класс для операци с переменными под мьютексом:
файл GSV.h
/* Global Secured Variable */
#ifndef GSV_H
#define GSV_H
#include <mutex>
template <typename T>
class GSV{
T value;
std::mutex m_value;
public:
GSV(){}
GSV(T val){value = val;}
~GSV(){}
operator T(){
std::lock_guard<std::mutex> lock(m_value);
return value;
}
operator=(T val){
std::lock_guard<std::mutex> lock(m_value);
value = val;
}
};
#endif /* GSV_H */
MSVS ругается так:
Compiler error C4430: missing type specifier - int assumed
на строку operator=(T val){
MinGW-w64 собирает без проблем и возмущений. Мне надо собрать проект в MSVS. Что ей не так, этой майкрософтовской среде?
Вы объявляете функцию operator=, которая возвращает - что? Укажите возвращаемый тип, и все будет в порядке...
Обычно (но не обязательно) это ссылка на сам тип класса, а возвращается *this, чтоб можно было выполнять цепочки присваиваний типа a = b = c;.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости