gpt4 book ai didi

c++ - 调试元程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:14 26 4
gpt4 key购买 nike

有什么方法可以一步步检查模板中发生的事情吗?我的意思是它是如何一步步实例化的等等?

我在书中提到了 here ,

我(2 分钟前)发现了一个非常有趣的示例,说明如何将二进制文件实现为元函数。

template <unsigned long N>
struct binary
{
static unsigned const value
= binary<N/10>::value << 1 // prepend higher bits
| N%10; // to lowest bit
};

template <> // specialization
struct binary<0> // terminates recursion
{
static unsigned const value = 0;
};

而且我认为能够逐步查看在该模板的实例化过程中完成的工作可能会非常有用。感谢您的回复。

最佳答案

到目前为止我看到的最好的是关于 Templight 的研究论文,但我不知道有任何公开的实现。

通过使用描述性静态(即编译时)断言,您可以帮助自己很多 - 参见例如助推器 static assertMPLs asserts .在某些情况下,它有助于引发编译错误(例如,通过使用静态断言)以从编译器获取模板实例化跟踪。
也没有什么可以阻止您在运行时输出元函数结果以进行测试。

关于c++ - 调试元程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2483426/

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