Оператор разрешения области также называется «Paamayim Nekudotayim» с иврита פעמיים נקודתיים. это означает «двойная двоеточие» или «двойная точка дважды».
Эта ошибка обычно возникает, если вы случайно поместите ::
в свой код.
Вопросы, относящиеся:
Документация:
Просто видел этот поток при поиске решений этой проблемы. Я отправляю здесь для полноты решение, которое я нашел...
флаги компилятора GCC, которые управляют неиспользованный предупреждения , включают:
-Wunused-function
-Wunused-label
-Wunused-parameter
-Wunused-value
-Wunused-variable
-Wunused (=all of the above)
Каждый из них имеет соответствующую отрицательную форму с "нет -" вставленный после W, который выключает предупреждение (в случае, если это было включено - Стена, например). Таким образом в Вашем случае необходимо использовать
-Wno-unused-function
, Конечно, это работает на целый код, не только, время компиляции утверждает. Для функционально-специализированного поведения взгляните на Функциональные атрибуты .
Решение для GCC, не вызывающего конфликты с другими компиляторами
#ifdef __GNUC__
#define VARIABLE_IS_NOT_USED __attribute__ ((unused))
#else
#define VARIABLE_IS_NOT_USED
#endif
int VARIABLE_IS_NOT_USED your_variable;
Можно создать пустой оператор и бросить результат освободить. Это портативно через компиляторы, и gcc не даст Вам, любые предупреждения, даже с -Wall
и -Wextra
включили. Например:
int var; // var is not used
(void)var; // null statement, cast to void -- suppresses warning
А общая техника должна создать макрос для этого:
#define UNUSED(x) ((void)(x))
int var;
UNUSED(var);
На это трудно ответить, не зная, что детали Ваших помех утверждают макросы. Возможно, Вы могли измениться на различный макрос для предотвращения этой проблемы? Вы могли или добавить 'неиспользованный' атрибут к макросу, как был предложен, или Вы могли использовать другую форму CASSERT ().
Вот описания нескольких альтернатив:
http://www.jaggersoft.com/pubs/CVu11_3.html
http://blog.kowalczyk.info/kb/compile-time-asserts-in-c.html