mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-24 13:48:59 +00:00
Provide do_put methods for inserting all remaining basic type values
into wide streams on systems where sizeof(wchar_t) == 2. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16275 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
655890d04d
commit
e7a9321e43
@ -439,53 +439,66 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
iter_type
|
||||||
|
do_put(iter_type oit, std::ios_base & b, char_type fill, bool v) const
|
||||||
|
{
|
||||||
|
return do_put_helper(oit, b, fill, v);
|
||||||
|
}
|
||||||
|
|
||||||
iter_type
|
iter_type
|
||||||
do_put(iter_type oit, std::ios_base & b, char_type fill, long v) const
|
do_put(iter_type oit, std::ios_base & b, char_type fill, long v) const
|
||||||
{
|
{
|
||||||
if (fill >= 0x80)
|
return do_put_helper(oit, b, fill, v);
|
||||||
throw num_put_failure();
|
|
||||||
|
|
||||||
std::string s;
|
|
||||||
// 64 is large enough
|
|
||||||
s.resize(64);
|
|
||||||
string_num_put_facet f;
|
|
||||||
std::string::const_iterator cit = s.begin();
|
|
||||||
std::string::const_iterator end =
|
|
||||||
f.put(s.begin(), b, fill, v);
|
|
||||||
for (; cit != end; ++cit, ++oit)
|
|
||||||
*oit = *cit;
|
|
||||||
|
|
||||||
return oit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
iter_type
|
iter_type
|
||||||
do_put(iter_type oit, std::ios_base & b, char_type fill, unsigned long v) const
|
do_put(iter_type oit, std::ios_base & b, char_type fill, unsigned long v) const
|
||||||
{
|
{
|
||||||
if (fill >= 0x80)
|
return do_put_helper(oit, b, fill, v);
|
||||||
throw num_put_failure();
|
|
||||||
|
|
||||||
std::string s;
|
|
||||||
// 64 is large enough
|
|
||||||
s.resize(64);
|
|
||||||
string_num_put_facet f;
|
|
||||||
std::string::const_iterator cit = s.begin();
|
|
||||||
std::string::const_iterator end =
|
|
||||||
f.put(s.begin(), b, fill, v);
|
|
||||||
for (; cit != end; ++cit, ++oit)
|
|
||||||
*oit = *cit;
|
|
||||||
|
|
||||||
return oit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef _GLIBCXX_USE_LONG_LONG
|
||||||
|
iter_type
|
||||||
|
do_put(iter_type oit, std::ios_base & b, char_type fill, long long v) const
|
||||||
|
{
|
||||||
|
return do_put_helper(oit, b, fill, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
iter_type
|
||||||
|
do_put(iter_type oit, std::ios_base & b, char_type fill, unsigned long long v) const
|
||||||
|
{
|
||||||
|
return do_put_helper(oit, b, fill, v);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
iter_type
|
iter_type
|
||||||
do_put(iter_type oit, std::ios_base & b, char_type fill, double v) const
|
do_put(iter_type oit, std::ios_base & b, char_type fill, double v) const
|
||||||
|
{
|
||||||
|
return do_put_helper(oit, b, fill, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
iter_type
|
||||||
|
do_put(iter_type oit, std::ios_base & b, char_type fill, long double v) const
|
||||||
|
{
|
||||||
|
return do_put_helper(oit, b, fill, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
iter_type
|
||||||
|
do_put(iter_type oit, std::ios_base & b, char_type fill, void const * v) const
|
||||||
|
{
|
||||||
|
return do_put_helper(oit, b, fill, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
template <typename ValueType>
|
||||||
|
iter_type
|
||||||
|
do_put_helper(iter_type oit, std::ios_base & b, char_type fill, ValueType v) const
|
||||||
{
|
{
|
||||||
if (fill >= 0x80)
|
if (fill >= 0x80)
|
||||||
throw num_put_failure();
|
throw num_put_failure();
|
||||||
|
|
||||||
std::string s;
|
|
||||||
// 64 is large enough
|
// 64 is large enough
|
||||||
s.resize(64);
|
std::string s(64, '\0');
|
||||||
string_num_put_facet f;
|
string_num_put_facet f;
|
||||||
std::string::const_iterator cit = s.begin();
|
std::string::const_iterator cit = s.begin();
|
||||||
std::string::const_iterator end =
|
std::string::const_iterator end =
|
||||||
|
Loading…
Reference in New Issue
Block a user