我目前正在开发一个采用大量C ++模板元编程的项目。我有很多类似于以下内容的代码:
template< class T >
struct MakeReferenceImpl{
using type = T&;
};
template< class T >
using MakeReference = typename MakeReferenceImpl< T >::type;
我经常使用Vim并且发现gCtrl-]
对于搜索符号的标签是必不可少的,但是注意到通过using
生成的别名类型没有收到自己的标签(至少在默认情况下不是这样)。是否可以使ctags将MakeReference
识别为自己的类型?
答案 0 :(得分:0)
Universal-ctags捕捉得很好。
$ cat /tmp/input.cc
template< class T >
struct MakeReferenceImpl{
using type = T&;
};
template< class T >
using MakeReference = typename MakeReferenceImpl< T >::type;
$ ~/var/ctags-github/ctags -o - /tmp/input.cc
MakeReference /tmp/input.cc /^using MakeReference = typename MakeReferenceImpl< T >::type;$/;" t typeref:typename:MakeReferenceImpl<T>::type file:
MakeReferenceImpl /tmp/input.cc /^struct MakeReferenceImpl{$/;" s file:
type /tmp/input.cc /^ using type = T&;$/;" t struct:MakeReferenceImpl typeref:typename:T & file: