Как пометить плохой код

Я хочу пометить плохой код (как рекомендует 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

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]