incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Created: (STDCXX-228) std::money_{get,put}<UDT> cannot be instantiated
Date Wed, 28 Jun 2006 18:34:29 GMT
std::money_{get,put}<UDT> cannot be instantiated
------------------------------------------------

         Key: STDCXX-228
         URL: http://issues.apache.org/jira/browse/STDCXX-228
     Project: C++ Standard Library
        Type: Bug

  Components: 22. Localization  
    Versions: 4.1.2, 4.1.3    
 Environment: all
    Reporter: Martin Sebor


Moved from the Rogue Wave bug tracking database:

****Created By: sebor @ Jun 07, 2001 07:19:12 PM****
The money_get and money_put facets cannot currently be instantiated on a user-defined character
type:

$ cat t.cpp

#include <locale>

int main ()
{
    std::money_get<int> m;
}


$ nice make SRCS=t.cpp
eccp -c -I/build2/sebor/dev/stdlib/include/ansi --incl_suffixes :: -D_RWSTDDEBUG    -D_RWSTD_USE_CONFIG
  -I/build/sebor/eccp-11s/include -I/build2/sebor/dev/stdlib/include -I/build2/sebor/dev/stdlib/../rwtest
-I/build2/sebor/dev/stdlib/tests/include  -A -B -x -g    --display_error_number --diag_suppress
11,450,518  t.cpp 
eccp t.o -o t  -L/build/sebor/eccp-11s/lib -lstd11s -lm  -L/build2/sebor/eccp-11s/tests -lrwtest11s

C++ prelinker: executing: /usr/local/edg-2.45/bin/eccp -c -I/build2/sebor/dev/stdlib/include/ansi
--incl_suffixes :: -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -I/build/sebor/eccp-11s/include -I/build2/sebor/dev/stdlib/include
-I/build2/sebor/dev/stdlib/../rwtest -I/build2/sebor/dev/stdlib/tests/include -A -B -x -g
--display_error_number --diag_suppress 11,450,518 t.cpp
"/build2/sebor/dev/stdlib/include/rw/_money.h", line 716: error #135: class
          "__rw::__rw_moneypunct_impl<int, true>" has no member "_C_ivals"
          return &_RW::__rw_moneypunct_impl<_CharT, _Intl>::_C_ivals;
                                                            ^
          detected during:
            instantiation of "const __rw::__rw_moneypunct_init_data<_CharT>
                      *std::moneypunct<_CharT, _Intl>::_C_get_ivals() [with
                      _CharT=int, _Intl=true]" at line 479 of
                      "/build2/sebor/dev/stdlib/include/rw/_locimp.h"
            instantiation of "_Facet *__rw::__rw_create_classic_facet(_Facet
                      *) [with _Facet=std::moneypunct<int, true>]" at line 507
                      of "/build2/sebor/dev/stdlib/include/rw/_locimp.h"
            instantiation of "__rw::__rw_facet_base
                      *__rw::__rw_facet_maker<_Facet>::_C_maker_func(int,
                      const char *, size_t) [with _Facet=std::moneypunct<int,
                      true>]" at line 625 of
                      "/build2/sebor/dev/stdlib/include/rw/_locale.h"
            instantiation of "const _Facet &std::use_facet<_Facet>(const
                      std::locale &) [with _Facet=std::moneypunct<int, true>]"
                      at line 155 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "const __rw::__rw_moneypunct_impl_data<_CharT>
                      &__rw::__rw_money_handler_base_1<_CharT>::_C_get_punct_da
                      ta(const std::locale &, bool) [with _CharT=int]" at line
                      308
            instantiation of "__rw::__rw_money_reader<_CharT,
                      _InputIter>::__rw_money_reader(_InputIter &, _InputIter
                      &, std::ios_base &, bool) [with _CharT=int,
                      _InputIter=std::istreambuf_iterator<int,
                      std::char_traits<int>>]" at line 558 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "std::money_get<_CharT, _InputIter>::iter_type
                      std::money_get<_CharT,
                      _InputIter>::do_get(std::money_get<_CharT,
                      _InputIter>::iter_type, std::money_get<_CharT,
                      _InputIter>::iter_type, bool, std::ios_base &,
                      std::ios_base::iostate &, long double &) const [with
                      _CharT=int, _InputIter=std::istreambuf_iterator<int,
                      std::char_traits<int>>]" 

"/build2/sebor/dev/stdlib/include/rw/_money.h", line 726: error #289: no
          instance of constructor "__rw::__rw_moneypunct_impl<_CharT,
          _Intl>::__rw_moneypunct_impl [with _CharT=int, _Intl=true]" matches
          the argument list
            argument types are: (const __rw::__rw_moneypunct_init_data<int> *)
        _RW::__rw_moneypunct_impl<_CharT, _Intl>(__mp)
                                                 ^
          detected during:
            instantiation of "std::moneypunct<_CharT,
                      _Intl>::moneypunct(size_t, const
                      __rw::__rw_moneypunct_init_data<_CharT> *) [with
                      _CharT=int, _Intl=true]" at line 479 of
                      "/build2/sebor/dev/stdlib/include/rw/_locimp.h"
            instantiation of "_Facet *__rw::__rw_create_classic_facet(_Facet
                      *) [with _Facet=std::moneypunct<int, true>]" at line 507
                      of "/build2/sebor/dev/stdlib/include/rw/_locimp.h"
            instantiation of "__rw::__rw_facet_base
                      *__rw::__rw_facet_maker<_Facet>::_C_maker_func(int,
                      const char *, size_t) [with _Facet=std::moneypunct<int,
                      true>]" at line 625 of
                      "/build2/sebor/dev/stdlib/include/rw/_locale.h"
            instantiation of "const _Facet &std::use_facet<_Facet>(const
                      std::locale &) [with _Facet=std::moneypunct<int, true>]"
                      at line 155 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "const __rw::__rw_moneypunct_impl_data<_CharT>
                      &__rw::__rw_money_handler_base_1<_CharT>::_C_get_punct_da
                      ta(const std::locale &, bool) [with _CharT=int]" at line
                      308
            instantiation of "__rw::__rw_money_reader<_CharT,
                      _InputIter>::__rw_money_reader(_InputIter &, _InputIter
                      &, std::ios_base &, bool) [with _CharT=int,
                      _InputIter=std::istreambuf_iterator<int,
                      std::char_traits<int>>]" at line 558 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "std::money_get<_CharT, _InputIter>::iter_type
                      std::money_get<_CharT,
                      _InputIter>::do_get(std::money_get<_CharT,
                      _InputIter>::iter_type, std::money_get<_CharT,
                      _InputIter>::iter_type, bool, std::ios_base &,
                      std::ios_base::iostate &, long double &) const [with
                      _CharT=int, _InputIter=std::istreambuf_iterator<int,
                      std::char_traits<int>>]" 

"/build2/sebor/dev/stdlib/include/rw/_codecvt.h", line 627: error #415: no
          suitable constructor exists to convert from "int" to "__mbstate_t"
      state_type __stt (0);
                        ^
          detected during:
            instantiation of "std::codecvt<_InternT, _ExternT,
                      _StateT>::internal_string_type std::codecvt<_InternT,
                      _ExternT, _StateT>::in(const std::codecvt<_InternT,
                      _ExternT, _StateT>::external_string_type &) const [with
                      _InternT=int, _ExternT=char, _StateT=mbstate_t]" at line
                      87 of "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "const __rw::__rw_moneypunct_init_data<_CharT>
                      *__rw::__rw_fixup_moneypunct_init(const
                      __rw::__rw_moneypunct_init_data<char> *, _CharT *) [with
                      _CharT=int]" at line 140 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "const __rw::__rw_moneypunct_init_data<_CharT>
                      *__rw::__rw_moneypunct_impl_data<_CharT>::_C_get_init_by_
                      name_(const char *, bool) [with _CharT=int]" at line 771
                      of "/build2/sebor/dev/stdlib/include/rw/_money.h"
            instantiation of "std::moneypunct_byname<_CharT,
                      _Intl>::moneypunct_byname(const char *, size_t) [with
                      _CharT=int, _Intl=true]" at line 791 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.h"
            instantiation of "std::moneypunct<_CharT, _Intl>
                      *__rw::__rw_create_named_facet(std::moneypunct<_CharT,
                      _Intl> *, const char *, size_t) [with _CharT=int,
                      _Intl=true]" at line 594 of
                      "/build2/sebor/dev/stdlib/include/rw/_locale.h"
            instantiation of "_Facet *__rw::__rw_create_native_facet(_Facet *)
                      [with _Facet=std::moneypunct<int, true>]" at line 508 of
                      "/build2/sebor/dev/stdlib/include/rw/_locimp.h"
            instantiation of "__rw::__rw_facet_base
                      *__rw::__rw_facet_maker<_Facet>::_C_maker_func(int,
                      const char *, size_t) [with _Facet=std::moneypunct<int,
                      true>]" at line 625 of
                      "/build2/sebor/dev/stdlib/include/rw/_locale.h"
            instantiation of "const _Facet &std::use_facet<_Facet>(const
                      std::locale &) [with _Facet=std::moneypunct<int, true>]"
                      at line 155 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "const __rw::__rw_moneypunct_impl_data<_CharT>
                      &__rw::__rw_money_handler_base_1<_CharT>::_C_get_punct_da
                      ta(const std::locale &, bool) [with _CharT=int]" at line
                      308 of "/build2/sebor/dev/stdlib/include/rw/_money.h"
            instantiation of "__rw::__rw_money_reader<_CharT,
                      _InputIter>::__rw_money_reader(_InputIter &, _InputIter
                      &, std::ios_base &, bool) [with _CharT=int,
                      _InputIter=std::istreambuf_iterator<int,
                      std::char_traits<int>>]" at line 558 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "std::money_get<_CharT, _InputIter>::iter_type
                      std::money_get<_CharT,
                      _InputIter>::do_get(std::money_get<_CharT,
                      _InputIter>::iter_type, std::money_get<_CharT,
                      _InputIter>::iter_type, bool, std::ios_base &,
                      std::ios_base::iostate &, long double &) const [with
                      _CharT=int, _InputIter=std::istreambuf_iterator<int,
                      std::char_traits<int>>]" 

"/build2/sebor/dev/stdlib/include/rw/_money.h", line 716: error #135: class
          "__rw::__rw_moneypunct_impl<int, false>" has no member "_C_ivals"
          return &_RW::__rw_moneypunct_impl<_CharT, _Intl>::_C_ivals;
                                                            ^
          detected during:
            instantiation of "const __rw::__rw_moneypunct_init_data<_CharT>
                      *std::moneypunct<_CharT, _Intl>::_C_get_ivals() [with
                      _CharT=int, _Intl=false]" at line 479 of
                      "/build2/sebor/dev/stdlib/include/rw/_locimp.h"
            instantiation of "_Facet *__rw::__rw_create_classic_facet(_Facet
                      *) [with _Facet=std::moneypunct<int, false>]" at line
                      507 of "/build2/sebor/dev/stdlib/include/rw/_locimp.h"
            instantiation of "__rw::__rw_facet_base
                      *__rw::__rw_facet_maker<_Facet>::_C_maker_func(int,
                      const char *, size_t) [with _Facet=std::moneypunct<int,
                      false>]" at line 625 of
                      "/build2/sebor/dev/stdlib/include/rw/_locale.h"
            instantiation of "const _Facet &std::use_facet<_Facet>(const
                      std::locale &) [with _Facet=std::moneypunct<int, false>]"
                      at line 159 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "const __rw::__rw_moneypunct_impl_data<_CharT>
                      &__rw::__rw_money_handler_base_1<_CharT>::_C_get_punct_da
                      ta(const std::locale &, bool) [with _CharT=int]" at line
                      308
            instantiation of "__rw::__rw_money_reader<_CharT,
                      _InputIter>::__rw_money_reader(_InputIter &, _InputIter
                      &, std::ios_base &, bool) [with _CharT=int,
                      _InputIter=std::istreambuf_iterator<int,
                      std::char_traits<int>>]" at line 558 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "std::money_get<_CharT, _InputIter>::iter_type
                      std::money_get<_CharT,
                      _InputIter>::do_get(std::money_get<_CharT,
                      _InputIter>::iter_type, std::money_get<_CharT,
                      _InputIter>::iter_type, bool, std::ios_base &,
                      std::ios_base::iostate &, long double &) const [with
                      _CharT=int, _InputIter=std::istreambuf_iterator<int,
                      std::char_traits<int>>]" 

"/build2/sebor/dev/stdlib/include/rw/_money.h", line 726: error #289: no
          instance of constructor "__rw::__rw_moneypunct_impl<_CharT,
          _Intl>::__rw_moneypunct_impl [with _CharT=int, _Intl=false]" matches
          the argument list
            argument types are: (const __rw::__rw_moneypunct_init_data<int> *)
        _RW::__rw_moneypunct_impl<_CharT, _Intl>(__mp)
                                                 ^
          detected during:
            instantiation of "std::moneypunct<_CharT,
                      _Intl>::moneypunct(size_t, const
                      __rw::__rw_moneypunct_init_data<_CharT> *) [with
                      _CharT=int, _Intl=false]" at line 479 of
                      "/build2/sebor/dev/stdlib/include/rw/_locimp.h"
            instantiation of "_Facet *__rw::__rw_create_classic_facet(_Facet
                      *) [with _Facet=std::moneypunct<int, false>]" at line
                      507 of "/build2/sebor/dev/stdlib/include/rw/_locimp.h"
            instantiation of "__rw::__rw_facet_base
                      *__rw::__rw_facet_maker<_Facet>::_C_maker_func(int,
                      const char *, size_t) [with _Facet=std::moneypunct<int,
                      false>]" at line 625 of
                      "/build2/sebor/dev/stdlib/include/rw/_locale.h"
            instantiation of "const _Facet &std::use_facet<_Facet>(const
                      std::locale &) [with _Facet=std::moneypunct<int, false>]"
                      at line 159 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "const __rw::__rw_moneypunct_impl_data<_CharT>
                      &__rw::__rw_money_handler_base_1<_CharT>::_C_get_punct_da
                      ta(const std::locale &, bool) [with _CharT=int]" at line
                      308
            instantiation of "__rw::__rw_money_reader<_CharT,
                      _InputIter>::__rw_money_reader(_InputIter &, _InputIter
                      &, std::ios_base &, bool) [with _CharT=int,
                      _InputIter=std::istreambuf_iterator<int,
                      std::char_traits<int>>]" at line 558 of
                      "/build2/sebor/dev/stdlib/include/rw/_money.cc"
            instantiation of "std::money_get<_CharT, _InputIter>::iter_type
                      std::money_get<_CharT,
                      _InputIter>::do_get(std::money_get<_CharT,
                      _InputIter>::iter_type, std::money_get<_CharT,
                      _InputIter>::iter_type, bool, std::ios_base &,
                      std::ios_base::iostate &, long double &) const [with
                      _CharT=int, _InputIter=std::istreambuf_iterator<int,
                      std::char_traits<int>>]" 

5 errors detected in the compilation of "t.cpp".

****Modified By: sebor @ May 09, 2002 02:55:00 PM****
libstd 3.0 cannot istantiate these monetray facets on UD char types either.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message