gpt4 book ai didi

c++ - 有模板调试器吗?

转载 作者:可可西里 更新时间:2023-11-01 15:23:00 25 4
gpt4 key购买 nike

模板本身可以是程序。

是否有模板调试器,以便您可以单步执行模板的“执行”?

这基本上必须是在编译/链接/代码生成期间完成的事情——并且与调试生成的程序不同。

即使在许多无法使用调试器的“原始”环境中,您通常也可以进行“printf 调试”。使用模板甚至可以做到这一点吗?

编辑:另一种思考方式类似于 C 预处理器。生成“预处理的”源代码通常非常有用——编译器实际编译的预处理器的输出——这可以让你看到你的宏有什么效果。等效的模板会很棒 - 让编译器输出非模板源代码,该代码与模板化输入共同响应。我想你能得到的最接近的是 C++ 到 C 的翻译器。 (comeau 编译器不这样做吗?)

最佳答案

您可能想看看 this patch for clang输出模板实例。

另一个简单的工具是编译器为尝试实例化未定义的模板而生成的错误消息。

template< typename > struct TD;

template< typename T >
void your_template_function( T & param )
{
// Both of these produce an error about "undefined type TD< T > with T = ..."
TD< T > test1;
TD< decltype( param ) > test2;
}

这在 Scott Meyers CPPCon talk 中有解释,就在环尾狐猴幻灯片之后。

关于c++ - 有模板调试器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26366138/

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