On 8 April 2015 at 17:34, Mike Harrold wrote: >>>> g++ -std=c++14 -c Data.cc > > Data.cc: In member function ‘T Data::__clr_flag(T&, const T&)’: > Data.cc:67:37: error: ‘__raw_clr_flag’ was not declared in this scope > { return __manip_flag(flag, bits, __raw_clr_flag); } > ^ Also __raw_clr_flag needs to be a static member function if you want a pointer to it to have type T(*)(T&, const T&). And why are you calling _M_lock.lock() and _M_lock.unlock() directly instead of using std::lock_guard ?