http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53578
--- Comment #7 from Ruben Van Boxem <vanboxem.ruben at gmail dot com> 2012-06-06 11:10:34 UTC --- Changing this line: static typename __enable_if<sizeof(&_Rm::sema), void>::__type to read: static typename __enable_if<static_cast<bool>(sizeof(&_Rm::sema)), void>::__type makes the unique_ptr problem go away (see http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/021863.html).