如何标记坏代码

时间:2016-09-20 06:58:17

标签: c++ hygiene

我想标记坏代码(正如GSL所建议的那样),最好的方法是什么?例如,给定下面的函数foo(不是最好的例子,我可以自己轻松解决这个问题)。

void foo(std::string& s){
    std::cout << s;
}

我想到了三个想法。这面旗帜有哪些优点(缺点)?

1.仅评论
//GSL::Con.2 s is read only,bla bla, ...
void foo(std::string& s){ //...
2.宏+静态断言
#ifdef GSL_FLAGS  
#define NON_CONST_READ_ONLY_PARAMETER \
    static_assert(false,"GSL::Con.2 is bad because of bla, bla");
#else
#define NON_CONST_READ_ONLY_PARAMETER
#endif

//elsewhere    

NON_CONST_READ_ONLY_PARAMETER
void foo(std::string& s){ //...
3.编译器警告
#define DO_PRAGMA(x) _Pragma (#x)
#define NON_CONST_READ_ONLY_PARAMETER DO_PRAGMA(message ("GSL:: ..."))

0 个答案:

没有答案