Jonathan This patch is fine, but your spacing is off. - _Tp __c(__a) _IsUnused; // require const copy constructor + _Tp __c _IsUnused (__a); // require const copy constructor should be + _Tp __c _IsUnused(__a); // require const copy constructor And others. With this issue fixed this is ok for 3.4 and mainline. Thanks, benjamin