https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78702
Bug ID: 78702 Summary: [libstdc++] class __shim in locale::facet is private Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: hiraditya at msn dot com Target Milestone: --- In file: include/bits/locale_classes.h 371 class locale::facet 372 { ... 465 class __shim; 466 467 const facet* _M_sso_shim(const id*) const; 468 const facet* _M_cow_shim(const id*) const; However in file: src/c++11/cxx11-shim_facets.cc numpunct_shim derives from facet::__shim which results in compilation error. 227 namespace // unnamed 228 { 229 template<typename _CharT> 230 struct numpunct_shim : std::numpunct<_CharT>, facet::__shim 231 { 232 typedef typename numpunct<_CharT>::__cache_type __cache_type; 233 234 // f must point to a type derived from numpunct<C>[abi:other] 235 numpunct_shim(const facet* f, __cache_type* c = new __cache_type) 236 : std::numpunct<_CharT>(c), __shim(f), _M_cache(c) 237 { 238 __numpunct_fill_cache(other_abi{}, f, c); 239 } What could be a possible fix here?