gpt4 book ai didi

c++ - 如何像 future 一样为 C++ STL 模板文件生成标签文件?

转载 作者:行者123 更新时间:2023-11-28 05:06:35 25 4
gpt4 key购买 nike

我想为 C++ STL 文件生成一个标签文件。但它似乎效果不佳。例如,我使用下面的命令

 sudo ctags -R --c++-kinds=+p --fields=+iaS --extra=+q future

'future' 是来自 gcc 的文件

因此,标签文件如下所示

!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/                                                                                                     
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.8 //

找不到任何在文件中定义的标签,如“async”、“future”,future,如下所示,

  template<typename _Fn, typename... _Args>
future<typename result_of<_Fn(_Args...)>::type>
async(launch __policy, _Fn&& __fn, _Args&&... __args);

template<typename _Fn, typename... _Args>
future<typename result_of<_Fn(_Args...)>::type>
async(_Fn&& __fn, _Args&&... __args);

最佳答案

您在命令行中将“future”指定为输入文件名。我不知道你使用的是哪个ctags实现,但我猜ctags无法知道 future 使用的语言。所以ctags无法选择适合“ future ”的解析器。如果您使用 --language-force=C++ 明确地为“ future ”指定一种语言,ctags 可能会很好地工作。以下几行显示了 Universal-ctags( https://ctags.io ) 标记两个“异步”。

[jet@localhost]/tmp% cat future
template<typename _Fn, typename... _Args>
future<typename result_of<_Fn(_Args...)>::type>
async(launch __policy, _Fn&& __fn, _Args&&... __args);

template<typename _Fn, typename... _Args>
future<typename result_of<_Fn(_Args...)>::type>
async(_Fn&& __fn, _Args&&... __args);

[jet@localhost]/tmp% ctags --version
Universal Ctags 0.0.0(d30a62d), Copyright (C) 2015 Universal Ctags Team
Universal Ctags is derived from Exuberant Ctags.
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Jun 26 2017, 00:15:01
URL: https://ctags.io/
Optional compiled features: +wildcards, +regex, +multibyte, +option-directory, +xpath, +json, +interactive, +sandbox, +yaml, +aspell

[jet@localhost]/tmp% ctags --kinds-C++=+p --fields=+iaS --extras=+q --language-force=C++ -o - future
async future /^async(_Fn&& __fn, _Args&&... __args);$/;" p typeref:typename:future<typename result_of<_Fn (_Args...)>::type> file: signature:(_Fn && __fn,_Args &&...__args)
async future /^async(launch __policy, _Fn&& __fn, _Args&&... __args);$/;" p typeref:typename:future<typename result_of<_Fn (_Args...)>::type> file: signature:(launch __policy,_Fn && __fn,_Args &&...__args)

关于c++ - 如何像 future 一样为 C++ STL 模板文件生成标签文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44586611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com