mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-24 13:48:59 +00:00
Backport Lars's fix for bug removal in GCC 4.7
A long standing bug has been fixed in GCC 4.7, the bug was a non- sactioned extra lookup. This caused some code to work that really shouldn't. The fixes are: add this->, Class::, or move functions about as required to fullfill the rules. In this case some template instantiations were movee to after what they reference. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@40583 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
436ed2cf19
commit
d8b68d84f1
@ -188,62 +188,6 @@ TabularFeature tabularFeature[] =
|
||||
};
|
||||
|
||||
|
||||
template <class T>
|
||||
string const write_attribute(string const & name, T const & t)
|
||||
{
|
||||
string const s = tostr(t);
|
||||
return s.empty() ? s : " " + name + "=\"" + s + "\"";
|
||||
}
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, string const & t)
|
||||
{
|
||||
return t.empty() ? t : " " + name + "=\"" + t + "\"";
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, docstring const & t)
|
||||
{
|
||||
return t.empty() ? string() : " " + name + "=\"" + to_utf8(t) + "\"";
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, bool const & b)
|
||||
{
|
||||
// we write only true attribute values so we remove a bit of the
|
||||
// file format bloat for tabulars.
|
||||
return b ? write_attribute(name, convert<string>(b)) : string();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, int const & i)
|
||||
{
|
||||
// we write only true attribute values so we remove a bit of the
|
||||
// file format bloat for tabulars.
|
||||
return i ? write_attribute(name, convert<string>(i)) : string();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, Tabular::idx_type const & i)
|
||||
{
|
||||
// we write only true attribute values so we remove a bit of the
|
||||
// file format bloat for tabulars.
|
||||
return i ? write_attribute(name, convert<string>(i)) : string();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, Length const & value)
|
||||
{
|
||||
// we write only the value if we really have one same reson as above.
|
||||
return value.zero() ? string() : write_attribute(name, value.asString());
|
||||
}
|
||||
|
||||
|
||||
string const tostr(LyXAlignment const & num)
|
||||
{
|
||||
switch (num) {
|
||||
@ -503,6 +447,61 @@ void l_getline(istream & is, string & str)
|
||||
}
|
||||
}
|
||||
|
||||
template <class T>
|
||||
string const write_attribute(string const & name, T const & t)
|
||||
{
|
||||
string const s = tostr(t);
|
||||
return s.empty() ? s : " " + name + "=\"" + s + "\"";
|
||||
}
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, string const & t)
|
||||
{
|
||||
return t.empty() ? t : " " + name + "=\"" + t + "\"";
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, docstring const & t)
|
||||
{
|
||||
return t.empty() ? string() : " " + name + "=\"" + to_utf8(t) + "\"";
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, bool const & b)
|
||||
{
|
||||
// we write only true attribute values so we remove a bit of the
|
||||
// file format bloat for tabulars.
|
||||
return b ? write_attribute(name, convert<string>(b)) : string();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, int const & i)
|
||||
{
|
||||
// we write only true attribute values so we remove a bit of the
|
||||
// file format bloat for tabulars.
|
||||
return i ? write_attribute(name, convert<string>(i)) : string();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, Tabular::idx_type const & i)
|
||||
{
|
||||
// we write only true attribute values so we remove a bit of the
|
||||
// file format bloat for tabulars.
|
||||
return i ? write_attribute(name, convert<string>(i)) : string();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
string const write_attribute(string const & name, Length const & value)
|
||||
{
|
||||
// we write only the value if we really have one same reson as above.
|
||||
return value.zero() ? string() : write_attribute(name, value.asString());
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
|
||||
|
@ -91,7 +91,9 @@ What's new
|
||||
- Make sure that we detect and use python 2 on systems where python 3
|
||||
is the default python interpreter.
|
||||
|
||||
- cmake, LYX_DEPENDENCIES_DOWNLOAD: look for the right filename on SourceForge
|
||||
- cmake, LYX_DEPENDENCIES_DOWNLOAD: look for the right filename on SourceForge.
|
||||
|
||||
- Make compilation work with GCC 4.7.
|
||||
|
||||
|
||||
** Bug fixes:
|
||||
|
Loading…
Reference in New Issue
Block a user