На проходящей конференции Qt World Summit Страуструп, создатель языка C++, дал советы по использованию C++:
«Никогда не используйте необработанный указатель в качестве дескриптора ресурса, например. Тогда вы нарушаете все, что я сказал. Никогда не передавайте набор элементов одним необработанным указателем, например, указателем на массив. Вы не знаете, сколько там элементов. Вы не можете провести достойную проверку диапазона. Если вы передаете вектор, он знает, сколько у него элементов, он знает, какие у него типы.
«Я почти никогда больше не использую приведения типов, кстати, это общая программная штука. И если вы не используете приведения типов, есть много ошибок типов, которые вы не можете сделать.
«Традиционно способ получить много всего из функции заключается в том, что вы помещаете что-то в свободное хранилище, динамическое хранилище, а затем вы передаете указатель, и затем вам нужно помнить, что рано или поздно его нужно удалить. В наши дни вы можете просто переместить вектор. Обычно это нулевые затраты».
"оператор new и оператор delete не должны быть в коде приложения"
Кроме того, Страуструп выступает за использования импорта модулей вместо стандартных include, так как использование #include является транзитивным (порядок имеет значение), вызывает повторную компиляцию и может привести к тонким ошибкам. Напротив, импорт не является транзитивным, и большую часть компиляции можно выполнить только один раз.
Также Страуструп высказался за наличие нескольких пустьи не совсем совместимых компиляторов C++, поскольку это увеличивает конкуренцию и простор для инноваций нежели, если бы существовал бы единый компилятор.
https://devclass.com/2025/05/09/interview-bjarne-stroustrup-on-21st-century-c-ai-risks-and-why-the-language-is-hard-to-replace/
«Никогда не используйте необработанный указатель в качестве дескриптора ресурса, например. Тогда вы нарушаете все, что я сказал. Никогда не передавайте набор элементов одним необработанным указателем, например, указателем на массив. Вы не знаете, сколько там элементов. Вы не можете провести достойную проверку диапазона. Если вы передаете вектор, он знает, сколько у него элементов, он знает, какие у него типы.
«Я почти никогда больше не использую приведения типов, кстати, это общая программная штука. И если вы не используете приведения типов, есть много ошибок типов, которые вы не можете сделать.
«Традиционно способ получить много всего из функции заключается в том, что вы помещаете что-то в свободное хранилище, динамическое хранилище, а затем вы передаете указатель, и затем вам нужно помнить, что рано или поздно его нужно удалить. В наши дни вы можете просто переместить вектор. Обычно это нулевые затраты».
"оператор new и оператор delete не должны быть в коде приложения"
Кроме того, Страуструп выступает за использования импорта модулей вместо стандартных include, так как использование #include является транзитивным (порядок имеет значение), вызывает повторную компиляцию и может привести к тонким ошибкам. Напротив, импорт не является транзитивным, и большую часть компиляции можно выполнить только один раз.
Также Страуструп высказался за наличие нескольких пустьи не совсем совместимых компиляторов C++, поскольку это увеличивает конкуренцию и простор для инноваций нежели, если бы существовал бы единый компилятор.
https://devclass.com/2025/05/09/interview-bjarne-stroustrup-on-21st-century-c-ai-risks-and-why-the-language-is-hard-to-replace/
DEVCLASS
Interview: Bjarne Stroustrup on 21st century C++, AI risks, and why the language is hard to replace • DEVCLASS
C++ inventor Bjarne Stroustrup talked to DevClass on how to write modern C++, the problem with trying to […]
👍17❤11❤🔥5🤔2🤡1