parsing of c++ template definitions in separate files

Raimar Sandner lists at 404not-found.de
Thu Apr 26 07:39:41 UTC 2012


Hi,

I'm working with a project where most template definitions are in separate 
*.tpp files (kdevelop-4.3.1). A minimal example follows:

--------------------------------------------------------
The file main.cpp:
--------------------------------------------------------
#include "foo.h"

int main(int argc, char **argv) {
  Foo<1> f;
}
--------------------------------------------------------
The file foo.h:
--------------------------------------------------------
#ifndef FOO_H
#define FOO_H

template<int R>
struct Foo
{
  void bar();
};
#include "foo.tpp"
#endif // FOO_H

--------------------------------------------------------
The file foo.tpp:
--------------------------------------------------------
template<int R>
void Foo<R>::bar()
{
}
--------------------------------------------------------

Now when I edit foo.tpp, the semantic analysis cannot resolve the class Foo<R> 
unless I #include "foo.h". I would like to avoid this workaround because I 
would need to maintain a private branch of the project. Is there any other way 
to tell the parser that when editing foo.tpp it should parse foo.h along with 
it?

Best regards
Raimar




More information about the KDevelop mailing list