Краткий список нового в C++26:
- индексация квадратными скобками для шаблонного пакета типов:
template <typename ...Ts>
decltype(auto) get_2nd_type() {
return Ts...[1];
}
- Запрет возврата ссылок на временные значения;
- распаковка вариадиков в структурные привязки (в процессе обсуждения):
void want_all_tuple_items(auto &tuple) {
auto &[...items] = tuple;
}- арифметика для чисел с насыщением - с ее помощью теперь можно складывать числа, не боясь (анти)переполнения - функции вернут результат в диапазоне [
numeric_limits<T>::min() numeric_limits<T>::max()]:static_assert(std::add_sat<unsigned char>(23, 666) == std::numeric_limits<unsigned char>::max())
- линал-функции в
std::linalg - с API, которое отображается на BLAS/LAPACK;- Конкатенация строк и string_view!
std::string("str") + std::string_view("_view");-
std::span.at();- Диагностическое сообщение для удаленных функций через
= delete("diagnostics");-
std::runtime_format() для std::format() - более безопасный, читаемый и удобный вариант, чем std::vformat();- и другие вещи, которые можно глянуть в заметке тут:
https://habr.com/ru/companies/yandex/articles/801115/
#cpp #cpp26 #online_report #isocpp #blas_and_lapack_in_cpp