🔥 Бьярн Страуструп о будущем C++, рисках ИИ и сложности замены языка
Создатель языка C++ Бьярн Страуструп поделился своим видением «C++ 21-го века» на конференции Qt World Summit в Мюнхене.
По его словам, современный C++ — это не просто набор новых функций, а более целостный, эффективный и безопасный язык.
❗Страуструп рекомендует:
• Использовать более прямые конструкции вместо традиционных переменных цикла
• Применять обобщенное программирование с автоматическим выводом типов
• Никогда не использовать «сырые указатели» как ресурсные дескрипторы
• Заменить устаревшие #include на современные import
Страуструп выразил обеспокоенность влиянием ИИ на программирование: «ИИ склоняет людей к устаревшим подходам, а программисты теряют способность выявлять проблемы».
Он также скептически относится к попыткам создать языки-заменители C++: «Легко разработать что-то лучше C++ для узкой области, но одна из сильных сторон C++ — работа в самых разных доменах».
Библиотека C/C++ разработчика
Создатель языка C++ Бьярн Страуструп поделился своим видением «C++ 21-го века» на конференции Qt World Summit в Мюнхене.
По его словам, современный C++ — это не просто набор новых функций, а более целостный, эффективный и безопасный язык.
❗Страуструп рекомендует:
• Использовать более прямые конструкции вместо традиционных переменных цикла
• Применять обобщенное программирование с автоматическим выводом типов
• Никогда не использовать «сырые указатели» как ресурсные дескрипторы
• Заменить устаревшие #include на современные import
Страуструп выразил обеспокоенность влиянием ИИ на программирование: «ИИ склоняет людей к устаревшим подходам, а программисты теряют способность выявлять проблемы».
Он также скептически относится к попыткам создать языки-заменители C++: «Легко разработать что-то лучше C++ для узкой области, но одна из сильных сторон C++ — работа в самых разных доменах».
Библиотека C/C++ разработчика
👍43❤🔥3
Устали от споров «что лучше передать: вектор, массив или указатель с длиной»? C++20 предлагает элегантное решение!
#include <span>
#include <vector>
#include <array>
// ✅ Функция работает с ЛЮБЫМ непрерывным контейнером!
void processData(std::span<const int> data) {
for (const auto& item : data) {
// Обработка
}
}
int main() {
// Работает с std::vector
std::vector<int> vec = {1, 2, 3, 4, 5};
processData(vec);
// Работает с std::array
std::array<int, 3> arr = {10, 20, 30};
processData(arr);
// Работает с C-массивами
int classic[] = {100, 200, 300};
processData(classic);
// Работает с подпоследовательностями!
processData(std::span(vec).subspan(1, 3)); // Только элементы 2,3,4
}
- Не владеет данными (zero overhead)
- Безопасно передает подпоследовательности
- Унифицированный интерфейс для всех контейнеров
- Выразительный код без шаблонных параметров
Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22