【发布时间】:2018-04-27 05:23:17
【问题描述】:
为了解决这个问题,我有一个带有参数的宏,并使用-> 在其上调用方法。
我想扩展它来检查 null,但发现人们已经在使用它和智能指针,其中一些不支持转换为 bool。
其中一些智能指针有不同名称的空值检查方法,我无法访问所有使用它的代码,所以我需要一个通用的解决方案。
我正在考虑将宏转发到某个模板函数,但我不确定如何完全通用。
【问题讨论】:
-
为什么要有一个宏转发给一个函数?为什么不只是一个函数?
-
因为它是一个日志宏,可以获取
__FILE__等,避免在禁用日志时计算日志输出。我现在也不能改变它(因此问题) -
是否可以为 bool 情况编写一个模板并为“特殊”智能指针编写更具体的模板? IE。对于每种特殊的有效性检查方法,是否只有一个模板或类型?否则我认为必须使用一些 SFINAE。
-
库中定义并使用了两个智能指针,但库的用户可能会使用他们自己的智能指针,我希望有一个完全通用的解决方案。跨度>