Иногда мы не замечаем уязвимости и потенциальные проблемы в нашем коде. AI-помощник может сэкономить не только время, но и избавить от серьезных багов в продакшене.
Review this code for errors and refactor to fix any issues:
[Вставь свой код]
Было:
class DataProcessor {
public:
char* processData(char* input) {
char* buffer = new char[100];
strcpy(buffer, input);
return buffer;
}
void cleanup() {
// забыли освободить память
}
};
void example() {
DataProcessor dp;
char* result = dp.processData("some long input data that might overflow");
// утечка памяти - не вызываем delete
}
Стало (после AI-ревью):
class DataProcessor {
public:
std::string ProcessData(const std::string& input) {
// Используем std::string для безопасности
return input; // или любая другая обработка
}
// Деструктор не нужен - RAII работает автоматически
};
void Example() {
DataProcessor dp;
std::string result = dp.ProcessData("some long input data that might overflow");
// Автоматическое управление памятью
}
Что исправил AI:
Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 std::source_location: автоматическое логирование
Забудьте FILE и LINE! std::source_location автоматически получает информацию о местоположении в коде.
Важно:
Библиотека C/C++ разработчика #буст
Забудьте FILE и LINE! std::source_location автоматически получает информацию о местоположении в коде.
#include <iostream>
#include <source_location>
#include <string_view>
void log_error(std::string_view message,
const std::source_location& loc = std::source_location::current()) {
std::cout << "ОШИБКА в " << loc.file_name()
<< ":" << loc.line()
<< " в функции " << loc.function_name()
<< " - " << message << std::endl;
}
void problematic_function() {
log_error("Что-то пошло не так!"); // Автоматически получит location
}
int main() {
log_error("Ошибка инициализации");
problematic_function();
return 0;
}
Важно:
source_location
вычисляется в точке вызова, не в точке определения функции.Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM