class __shim in locale::facet is private

Aditya Kumar aditya.k7@samsung.com
Tue Dec 6 17:41:00 GMT 2016


Created bug# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78702

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?

Thanks,
-Aditya



More information about the Libstdc++ mailing list