GNOME Bugzilla – Bug 661814
writeMemberNavIndex template calls static fixSpaces
Last modified: 2015-12-30 10:19:15 UTC
Building doxygen 1.7.5.1 on x86_64-sun-solaris2.10 (Solaris 10u8, not OpenSolaris) with the no-cost Sun Workshop 12.2 compiler chain. The C++ compiler objects to a template calling a static function; apparently that's not permitted by the C++ standard: CC -c -m64 -xarch=generic -DYY_TYPEDEF_YY_SIZE_T -Dyy_size_t=int -errtags=yes -xO2 -I../qtools -I../libmd5 -o ../objects/index.o index.cpp "outputlist.h", line 513: Warning, hidevf: OutputList::parseDoc hides the virtual function BaseOutputDocInterface::parseDoc(const char*, int, const char*, MemberDef*, const QCString&, bool). "index.cpp", line 3119: Error, templ_static_ref: Reference to static fixSpaces(const QCString&) not allowed in template writeMemberNavIndex<CmhlInfo>(FTextStream&, int, int, int*, MemberIndexList(*)[256], const CmhlInfo*(*)(int), bool&), try using -features=tmplrefstatic. "index.cpp", line 3213: Where, temwhileinst: While instantiating "writeMemberNavIndex<CmhlInfo>(FTextStream&, int, int, int*, MemberIndexList(*)[256], const CmhlInfo*(*)(int), bool&)". "index.cpp", line 3213: Where, teminstend: Instantiated from non-template code. 1 Error(s) and 1 Warning(s) detected. gmake[2]: *** [../objects/index.o] Error 2 gmake[2]: Leaving directory `/local/src/RPM/BUILD/doxygen-1.7.5.1/src' As you can see, the compiler points out that it (probably only versions of the compiler from the past couple years) has a flag that can be passed to allow this, it's -features=tmplrefstatic . With this flag, I can build doxygen successfully. Still, it might be something you want to address in mainline, so I thought I would report it.
I've just pushed a proposed solution to github (pull request 370)
Thanks, I've merged the pull request
This bug was previously marked ASSIGNED, which means it should be fixed in doxygen version 1.8.11. Please verify if this is indeed the case. Reopen the bug if you think it is not fixed and please include any additional information that you think can be relevant (preferably in the form of a self-contained example).