.natvis - 如何引用模板模板参数?

Posted

技术标签:

【中文标题】.natvis - 如何引用模板模板参数?【英文标题】:.natvis - how to reference a template template parameter? 【发布时间】:2017-04-13 08:11:51 【问题描述】:

我正在尝试为 Visual Studio 创建一个 .natvis 文件。根据这个page,我可以使用$T1, $T2 等来引用模板参数。所以在MyClass<A> 的情况下$T1 将引用A 类型。这行得通。但在我的情况下,A 本身就是一个模板,我需要引用它的参数,某种 $T1<$T1> - 但这显然不起作用。

【问题讨论】:

【参考方案1】:

至少在 Visual Studio 2015 中,模板参数伪变量$T1$T2 等似乎实际上对应于类型“名称”表达式中的通配符,而不是严格对应于模板参数。

例如,当

<Type Name="outer&lt;*,inner&lt;*&gt;,*&gt">

匹配outer&lt; int, inner&lt; float &gt;, short, long &gt;$T1 扩展为int$T2 扩展为float$T3 扩展为short, long

【讨论】:

以上是关于.natvis - 如何引用模板模板参数?的主要内容,如果未能解决你的问题,请参考以下文章

VSCode natvis 处理某些变量,但不处理相同模板类型的其他变量

在 natvis 可视化器的第一个扩展级别上扩展模板类型的成员

如何将右值引用参数传递给 C++ 中的模板 operator() 函数?

不能将类引用用作非类型模板参数

Django:引用模板中的url名称并传递参数

c++11-17 模板核心知识—— 理解模板参数推导规则