On Wed, Apr 8, 2015 at 12:58 PM, Jonathan Wakely <jwakely.gcc@xxxxxxxxx> wrote: > 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&). This. Thanks. I did say it was going to be something stupidly simple... > > > And why are you calling _M_lock.lock() and _M_lock.unlock() directly > instead of using std::lock_guard ? We're not actually using std::mutex, we have our own mutex class, but it was easier to post the question using std::mutex. --Mike