TGViewer
C++ Moscow C++ Moscow @cppmoscow_info · 448 subscribers
Post #86 725
#proposals #wg21

Trip report: Autumn ISO C++ standards meeting (Kona, HI, USA)

Чуть больше, чем неделю назад, появились первые трип-репорты с недавней встречи WG21 (Комитет по стандартизации C++) в Коне

По ее итогам в C++26 вошли:

1. Возможность обращения к parameter pack'ам как к массивам (P2662R3)

template <typename... T>
constexpr auto first_plus_last(T... values) -> T...[0] {
    return T...[0](values...[0] + values...[sizeof...(values)-1]);
}

int main() {
    static_assert( first_plus_last(1, 2, 10) == 11 );
}


2. Огромное количество функций линейной алгебры в стиле фортрановского BLAS, <linalg> (P1673R13)

template<in-matrix InMat, class Triangle, in-vector InVec, out-vector OutVec>
void cholesky_solve(InMat A, Triangle t, InVec b, OutVec x)
{
using std::linalg::explicit_diagonal, std::linalg::transposed, std::linalg::triangular_matrix_vector_solve;

if constexpr (std::is_same_v<Triangle, upper_triangle_t>) {
// Solve Ax=b where A = U^T U. Solve U^T c = b, using x to store c.
triangular_matrix_vector_solve(transposed(A),
opposite_triangle(t), explicit_diagonal, b, x);
// Solve U x = c, overwriting x with result.
triangular_matrix_vector_solve(A, t, explicit_diagonal, x);
}
else {
// ...
}
}
3. Более удобный и безопасный способ форматирования рантаймовых строк (P2905R2, P2918R2)

// Before:
std::vformat(str, std::make_format_args(42));
// After:
std::format(std::runtime_format(str), 42);
4. Возможность создания в рантайме точек останова для отладки, <debugging> (P2546R5)

// Здесь мы хотим переключиться в отладчик
std::breakpoint_if_debugging();
// А здесь мы из него возвращаемся
И многое, более мелкое, другое.

Как вы думаете, комитет тратит свои силы на стоящие вещи? И что бы хотели видеть вы в C++26?
  • 😱 8
  • 👍 4
More from @cppmoscow_info
  1. Aug 11, 2024#article #original Реализуем эффективный тупль с помощью C++26 Свет видел много любительск…
  2. Jul 14, 2024Интересный пример, когда объявление friend T (где T — шаблонный параметр) имеет смысл: tem…
  3. Jun 2, 2024#обсуждение Вечернее обсуждение. Пост от @eoanermine Кажется, будто C++ идёт не в том напр…
  4. Mar 1, 2024Спасибо всем зарегистрировавшимся, и до скорой встречи! Нам хотелось бы собрать как можно…
  5. Feb 27, 202420 марта: C++ митап в Петербурге и онлайне Нас ждет классический вечерний бесплатный митап…
  6. Feb 27, 2024Пока мы проводим митапы в Москве, наши коллеги из YADRO планируют митап в Санкт–Петербурге…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →