You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2006/06/28 20:34:29 UTC
[jira] Created: (STDCXX-228) std::money_{get,put} cannot be
instantiated
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
[jira] Commented: (STDCXX-228) std::money_{get,put} cannot be
instantiated
Posted by "Farid Zaripov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12533800 ]
Farid Zaripov commented on STDCXX-228:
--------------------------------------
Could not repeat this issue. And even ./include/rw/_money.h file doesn't exist. I suppose that the issue is not actual.
> std::money_{get,put}<UDT> cannot be instantiated
> ------------------------------------------------
>
> Key: STDCXX-228
> URL: https://issues.apache.org/jira/browse/STDCXX-228
> Project: C++ Standard Library
> Issue Type: Bug
> Components: 22. Localization
> Affects Versions: 4.1.2, 4.1.3
> Environment: all
> Reporter: Martin Sebor
> Priority: Minor
>
> 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.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (STDCXX-228) std::money_{get,put} cannot be
instantiated
Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Sebor updated STDCXX-228:
--------------------------------
Priority: Minor (was: Major)
Lowered priority since facet specializations on types other than char and wchar_t are very rare.
> std::money_{get,put}<UDT> cannot be instantiated
> ------------------------------------------------
>
> Key: STDCXX-228
> URL: https://issues.apache.org/jira/browse/STDCXX-228
> Project: C++ Standard Library
> Issue Type: Bug
> Components: 22. Localization
> Affects Versions: 4.1.3, 4.1.2
> Environment: all
> Reporter: Martin Sebor
> Priority: Minor
>
> 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.
-
You can reply to this email to add a comment to the issue online.