There seems to be a bug when parsing the definition of a template method inside namespaces.
namespace a {
namespace b {
namespace c {
// declaration
template <typename Val, typename Cl>
class foo
{
void mark_updated(t1 b, t2 e);
};
...
// definition
template <typename Val, typename C1>
void a::b::c::foo<Val, C1>::mark_updated(t1 b, t2 e)
{
// find next/prev does not work inside this method
}
}
}
}
Find next/prev by context do not work inside the mark_updated definition.
But if I remove the a::b::c:: namespace qualification for the method
namespace a{ namespace b{ namespace c{...
template <typename Val, typename C1>
void foo::mark_updated(...)
{
// now it works
}
it works okay.
BTW, I wouldn't myself actually put a::b::c:: in front of the method definition. Since the definition is contained in the corrent namespace, it is superfluous. But the VAssist refactoring menu "Create Implementation" does this. It puts the definition into the correct file, but does not take into account the namespace it puts it into.