#include <mutex>
#include <vector>
std::mutex protectBuffer;
std::vector<int> somevector;
void myfunction(int data)
{
std::lock_guard<std::mutex> (protectBuffer);
somevector.push_back(data);
}
int main()
{
myfunction(3);
}
I2luY2x1ZGUgPG11dGV4PgojaW5jbHVkZSA8dmVjdG9yPgoKc3RkOjptdXRleCBwcm90ZWN0QnVmZmVyOwpzdGQ6OnZlY3RvcjxpbnQ+IHNvbWV2ZWN0b3I7Cgp2b2lkIG15ZnVuY3Rpb24oaW50IGRhdGEpCnsKICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiAocHJvdGVjdEJ1ZmZlcik7CiAgICBzb21ldmVjdG9yLnB1c2hfYmFjayhkYXRhKTsKfQoKaW50IG1haW4oKQp7CiAgICBteWZ1bmN0aW9uKDMpOwp9Cg==
prog.cpp: In function ‘void myfunction(int)’:
prog.cpp:9:47: error: no matching function for call to ‘std::lock_guard<std::mutex>::lock_guard()’
std::lock_guard<std::mutex> (protectBuffer);
^
prog.cpp:9:47: note: candidates are:
In file included from prog.cpp:1:0:
/usr/include/c++/4.8/mutex:416:7: note: std::lock_guard<_Mutex>::lock_guard(std::lock_guard<_Mutex>::mutex_type&, std::adopt_lock_t) [with _Mutex = std::mutex; std::lock_guard<_Mutex>::mutex_type = std::mutex]
lock_guard(mutex_type& __m, adopt_lock_t) : _M_device(__m)
^
/usr/include/c++/4.8/mutex:416:7: note: candidate expects 2 arguments, 0 provided
/usr/include/c++/4.8/mutex:413:16: note: std::lock_guard<_Mutex>::lock_guard(std::lock_guard<_Mutex>::mutex_type&) [with _Mutex = std::mutex; std::lock_guard<_Mutex>::mutex_type = std::mutex]
explicit lock_guard(mutex_type& __m) : _M_device(__m)
^
/usr/include/c++/4.8/mutex:413:16: note: candidate expects 1 argument, 0 provided