Возможно ли принудительное использование оператора new
с std::nothrow
во время компиляции или, по крайней мере, во время статического анализа с использованием pc-lint? Использование компилятора C++ (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9).принудительно использовать std :: nothrow во время компиляции или во время статического анализа
0
A
ответ
1
Да, это возможно. GCC поддерживает атрибут error
, что делает использование какой-либо конкретной функции жесткой ошибкой. Применительно к operator new
имеет ожидаемый эффект.
#include <cstddef>
void *operator new(std::size_t) __attribute__((error("use new(std::nothrow) instead")));
int main() {
new int;
}
Это отвергается компилятором с:
h.cc: In function ‘int main()’: h.cc:6:10: error: call to ‘operator new’ declared with attribute error: use new(std::nothrow) instead new int; ^
ли к сведению, однако, что это относится только к коду, в котором эта таможенная декларация видна. Вы можете проверить код любых библиотек, которые вы используете, включая стандартную библиотеку.
Смежные вопросы
- 1. Определить выполнение `constexpr` - во время компиляции или во время выполнения?
- 2. catch std :: назначение функций во время компиляции
- 3. Устранение статического метода во время компиляции
- 4. Сравнение указателей статического поля во время компиляции
- 5. шаблоны синтаксического анализа во время компиляции
- 6. Подтвердить содержимое std :: initializer_list во время компиляции
- 7. Инициализация C++ std :: bitset во время компиляции
- 8. java.lang.ClassCastException во время выполнения или во время компиляции
- 9. Встраивается ли во время компиляции или во время выполнения?
- 10. Выполняется ли установка во время выполнения или во время компиляции?
- 11. Отказывание во время компиляции
- 12. Ошибки при отладке во время компиляции во время компиляции
- 13. Тип специализации во время компиляции
- 14. offsetof во время компиляции
- 15. Ошибка во время компиляции?
- 16. std :: коэффициент мощности std :: ratio во время компиляции?
- 17. Почему во время компиляции нельзя разрешить полиморфизм во время выполнения?
- 18. Makefile: принудительно использовать динамическую или статическую библиотеку во время сборки
- 19. Принудительно вызовов функций во время компиляции в C++
- 20. Обрезать строку во время компиляции
- 21. Размер off_t во время компиляции
- 22. Инициализация синглтона во время компиляции
- 23. Использовать пользовательский загрузчик классов во время компиляции
- 24. Сгенерировать функции во время компиляции
- 25. Динамическое создание карты во время компиляции
- 26. Аннотации присутствуют во время компиляции, но отсутствуют во время выполнения
- 27. CSharpCodeProvider использовать пользовательский параметр во время компиляции
- 28. Как использовать 'ref' во время компиляции?
- 29. Использовать заголовки недоступны во время компиляции
- 30. Бесконечная петля во время компиляции?