【发布时间】:2016-08-19 00:40:45
【问题描述】:
我想在 D 中实现一个 C 风格的 sizeof() 函数。(我知道 .sizeof 的东西,但它有助于移植很多 C (C99)。)
显然,我希望它能够在编译时运行,并将类型或表达式作为参数。理想情况下,如果可能的话,我希望它具有与 C 相同的语法,而不是使用独特的模板调用语法,因为这会大大增加它的实用性。这有可能吗?
【问题讨论】:
-
size_t sizeof( T )( T x ) { return T.sizeof; } // 是一次糟糕的失败——我的第一次,注定失败的尝试
-
size_t sizeof( T )() { return T.sizeof; } size_t sizeof( T )( T x) { return T.sizeof; } // 就是这样。
-
顺便说一句,您知道本指南吗? dlang.org/ctod.html
-
是的,我直接浏览了网站的那个部分。不过,我仍然是一个新手。我目前正在重读 Ali Çehreli 的在线书籍,非常有帮助。遗憾的是这些示例有点啰嗦和不切实际,但是当您需要保持简洁并专注于您打算展示的功能时,您可以在教程中做很多事情。
-
虽然它仍然是 WIP,但 DLang Tour 也有一些材料可以提供,例如tour.dlang.io/tour/en/gems/…