Fix compile error in gcc introduced in r4307 (instantiating templates with private inner types is a msvc extension)

Originally committed to SVN as r4311.
This commit is contained in:
Thomas Goyne 2010-05-19 03:24:07 +00:00
parent f4124e373c
commit 94bffb5b9d

View file

@ -287,7 +287,6 @@ bool AssFile::CanSave() {
/// @brief even moving things out of order might break ASS parsing - AMZ. I strongly advice you against touching this function unless you know what you're doing; ------------------- Appends line to Ass /// @brief even moving things out of order might break ASS parsing - AMZ. I strongly advice you against touching this function unless you know what you're doing; ------------------- Appends line to Ass
/// @param data /// @param data
/// @param group /// @param group
/// @param lasttime
/// @param version /// @param version
/// @param outGroup /// @param outGroup
/// @return /// @return
@ -493,7 +492,6 @@ void AssFile::InsertStyle (AssStyle *style) {
AssEntry *curEntry; AssEntry *curEntry;
list<AssEntry*>::iterator lastStyle = Line.end(); list<AssEntry*>::iterator lastStyle = Line.end();
list<AssEntry*>::iterator cur; list<AssEntry*>::iterator cur;
int lasttime = -1;
wxString lastGroup; wxString lastGroup;
// Look for insert position // Look for insert position
@ -992,14 +990,16 @@ bool AssFile::CompStyle(const AssDialogue* lft, const AssDialogue* rgt) {
void AssFile::Sort(CompFunc comp) { void AssFile::Sort(CompFunc comp) {
Sort(Line, comp); Sort(Line, comp);
} }
void AssFile::Sort(std::list<AssEntry*> &lst, CompFunc comp) { namespace {
// uguu c++ closures uguu struct AssEntryComp : public std::binary_function<const AssEntry*, const AssEntry*, bool> {
struct : public std::binary_function<const AssEntry*, const AssEntry*, bool> { AssFile::CompFunc comp;
CompFunc comp;
bool operator()(const AssEntry* a, const AssEntry* b) const { bool operator()(const AssEntry* a, const AssEntry* b) const {
return comp(static_cast<const AssDialogue*>(a), static_cast<const AssDialogue*>(b)); return comp(static_cast<const AssDialogue*>(a), static_cast<const AssDialogue*>(b));
} }
} compE; };
}
void AssFile::Sort(std::list<AssEntry*> &lst, CompFunc comp) {
AssEntryComp compE;
compE.comp = comp; compE.comp = comp;
// Sort each block of AssDialogues separately, leaving everything else untouched // Sort each block of AssDialogues separately, leaving everything else untouched
for (entryIter begin = lst.begin(); begin != lst.end(); ++begin) { for (entryIter begin = lst.begin(); begin != lst.end(); ++begin) {