http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54259

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|debian on amd64             |
               Host|debian on amd64             |

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-08-14 
16:51:56 UTC ---
It looks like a problem caused by 4.7 not implementing access control for
SFINAE, which is fixed on trunk. 

You can workaround it by removing your private copy constructor and inheriting
from a type like boost::noncopyable:

    struct noncopyable
    {
        noncopyable() { }
    private:
        noncopyable(const noncopyable&);
    };


    template <class Type>
    class LockGuard : noncopyable
    {
      // ...
    private:
      // LockGuard(const LockGuard &);
    };

Now LockGuard's copy constructor will be deleted, and works well with SFINAE.

Reply via email to