summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-12-12 11:17:02 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-12-12 11:45:41 (GMT)
commit050b247c2fa1f667c26794a4dbaa21254b2cb321 (patch)
tree782312efb0c6c3f46b629add2acaeb9329eb6474 /src
parentf3be5da77f1d19cc903f6c8f218c645682f397e4 (diff)
downloadDoxygen-050b247c2fa1f667c26794a4dbaa21254b2cb321.zip
Doxygen-050b247c2fa1f667c26794a4dbaa21254b2cb321.tar.gz
Doxygen-050b247c2fa1f667c26794a4dbaa21254b2cb321.tar.bz2
Fix for compilation issues on Windows
Using lambdas as a default argument is not supported by older versions of MSVC
Diffstat (limited to 'src')
-rw-r--r--src/layout.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/layout.cpp b/src/layout.cpp
index 6ebe4b6..a1a054e 100644
--- a/src/layout.cpp
+++ b/src/layout.cpp
@@ -720,13 +720,22 @@ static ElementCallbacks::StartCallback startCb(void (LayoutParser::*fn)(LayoutDo
static ElementCallbacks::StartCallback startCb(void (LayoutParser::*fn)(const XMLHandlers::Attributes &,MemberListType,const QCString &,const QCString &),
MemberListType type,
+ std::function<QCString()> title
+ )
+{
+ return [fn,type,title](LayoutParser &parser,const XMLHandlers::Attributes &attr) { (parser.*fn)(attr,type,title(),QCString()); };
+}
+
+static ElementCallbacks::StartCallback startCb(void (LayoutParser::*fn)(const XMLHandlers::Attributes &,MemberListType,const QCString &,const QCString &),
+ MemberListType type,
std::function<QCString()> title,
- std::function<QCString()> subtitle=[](){ return QCString(); }
+ std::function<QCString()> subtitle
)
{
return [fn,type,title,subtitle](LayoutParser &parser,const XMLHandlers::Attributes &attr) { (parser.*fn)(attr,type,title(),subtitle()); };
}
+
static ElementCallbacks::EndCallback endCb(void (LayoutParser::*fn)())
{
return [fn](LayoutParser &parser) { (parser.*fn)(); };
@@ -1541,7 +1550,7 @@ void LayoutDocManager::parse(const char *fileName)
XMLHandlers handlers;
handlers.startElement = [&layoutParser](const std::string &name,const XMLHandlers::Attributes &attrs) { layoutParser.startElement(name,attrs); };
handlers.endElement = [&layoutParser](const std::string &name) { layoutParser.endElement(name); };
- handlers.error = [&layoutParser](const std::string &fileName,int lineNr,const std::string &msg) { layoutParser.error(fileName,lineNr,msg); };
+ handlers.error = [&layoutParser](const std::string &fn,int lineNr,const std::string &msg) { layoutParser.error(fn,lineNr,msg); };
XMLParser parser(handlers);
layoutParser.setDocumentLocator(&parser);
parser.parse(fileName,fileToString(fileName));