问号表达式与防御式编程

前端之家收集整理的这篇文章主要介绍了问号表达式与防御式编程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

问号表达式与防御式编程

有类如下:

有比较函数如下:

int compare2(Widget const *l,Widget const *r)
{
    /*do compare*/
}

int compare2(Widget const * const l,Widget const * const r)
{
    /*do compare*/
}</code></pre>

显然,第二、三种版本的比较函数安全,在防御性编程的思想下,我们可以使用下面的问号表达式检查比较函数指针的类型

int main()
{
CHECK_CMP_FUNC_PTR(compare1); // error

CHECK_CMP_FUNC_PTR(compare2); // ok

CHECK_CMP_FUNC_PTR(compare3); // ok

return 0;

}

猜你在找的程序笔记相关文章