home.social

#constexpr — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #constexpr, aggregated by home.social.

fetched live
  1. Ненормальное марковское программирование: бег по правилам

    Продолжение. Начало здесь . Предыдущая часть . Репозиторий с кодом - на гитхабе . (Сокращения: НАМ - нормальные алгорифмы Маркова, КТ - компайл-тайм, РТ - рантайм). Следующая неприятность, которая нас ждёт, - это циклы, которые в КТ вовсе не циклы. Нам надо как-то научиться бегать по правилам, из которых состоит НАМ-программа.

    habr.com/ru/articles/1049258/

    #нормальные_алгоритмы_маркова #constexpr #template #template_metaprogramming #string #compiletime #compiletime_computation #c++ #монады #either

  2. Ненормальное марковское программирование: КТ-строки и синглетоны

    Продолжение. Первая часть - программирование на НАМ . Вторая - обзор неприятностей, концепты . Пришло время запутаться и распутаться со строками в компайл-тайме... и с зависимыми типами. Основные требования к КТ-строкам - чтобы можно было использовать их в качестве параметров шаблона, и чтобы можно было писать constexpr-функции, логика и типы которых зависят от значений аргументов. Это не очень сложно, но может быть неочевидно.

    habr.com/ru/articles/1048176/

    #ненормальное_программирование #нормальные_алгоритмы_маркова #constexpr #template_metaprogramming #template #concept #string #compiletime #compiletime_computation

  3. Ненормальное марковское программирование

    Какие программы могут быть по-настоящему достойны хаба " ненормальное программирование"? Конечно же, программы для нормальных марковских алгорифмов! (Далее - НАМ). Но, будем честны перед собой: абстрактные машины - очень просты в реализации. Зачастую вызов состоит в том, чтобы сделать какую-нибудь эзотерическую версию, язык для машины на минималках, и затем ещё и минимизировать транслятор для него. Поэтому поставим задачу со звёздочкой: научимся писать для НАМ в компайл-тайме С++! Для начала, посмотрим: что такое НАМ и что на них вообще можно делать.

    habr.com/ru/articles/1046688/

    #нормальные_алгоритмы_маркова #constexpr #template #concept #string #compiletime #compiletime_computation #ненормальное_программирование

  4. CLion 2025.3 Is Here, and It’s Epic: Faster Language Engine, Unique Constexpr Debugger, DAP Support, and Much More

    blog.jetbrains.com/clion/2025/

  5. Ошибки, которые не случились: C++ и compile‑time проверка SQL-запросов

    В этой статье мы посмотрим, как можно реализовать полную compile‑time валидацию SQL‑запросов на основе схемы базы данных, встраиваемой прямо в код. Без магии, без рантайма, без сторонних тулов. Только стандартный C++ и ваша структура БД. Валидация таблиц, столбцов, типов аргументов и их количества — всё на compile‑time. Представьте, если бы компилятор сам указывал «такой таблицы нет», «несуществующий столбец», «несовместимые типы» — до запуска программы. Такой подход полностью устраняет «сюрпризы» во время исполнения и исключает класс ошибок, связанных с генерацией SQL во время работы программы. Ваша программа даже не соберётся.

    habr.com/ru/articles/929052/

    #constexpr #compiletime #C++ #SQLвалидация #consteval #ошибки_компиляции #C++26_возможности #ZeroRuntime #typesafe_SQL #CRTP

  6. Встреча ISO C++ в Софии: С++26 и рефлексия

    Привет! На связи Антон Полухин из техплатформы городских сервисов Яндекса, и сейчас я расскажу о софийской встрече Международного комитета по стандартизации языка программирования C++, в которой принимал активное участие. Это была последняя встреча, на которой новые фичи языка, с предодобренным на прошлых встречах дизайном, ещё могли попасть в C++26. И результат превзошёл все ожидания: compile-time-рефлексия рефлексия параметров функций аннотации std::optional<T&‍> параллельные алгоритмы Об этих и других новинках расскажу в посте

    habr.com/ru/companies/yandex/a

    #c++29 #с++29 #c++26 #с++26 #с++ #c++ #reflection #constexpr #exception #simd #safety #security #undefined_behavior #annotations #parallel_programming #executor #executors #ranges #coroutines

  7. Ah, yet another riveting chapter in the never-ending #C++ saga 📚! This time, it's the thrilling tale of #constexpr infiltrating the standard library, because who doesn’t love waiting for the next version of a language to get basic compile-time functionality? 🤷‍♂️ Exciting news for those who find watching paint dry too exhilarating! 🎨
    sandordargo.com/blog/2025/04/3 #C++StandardLibrary #CompileTime #ProgrammingHumor #HackerNews #ngated

  8. Ah, yet another riveting chapter in the never-ending #C++ saga 📚! This time, it's the thrilling tale of #constexpr infiltrating the standard library, because who doesn’t love waiting for the next version of a language to get basic compile-time functionality? 🤷‍♂️ Exciting news for those who find watching paint dry too exhilarating! 🎨
    sandordargo.com/blog/2025/04/3 #C++StandardLibrary #CompileTime #ProgrammingHumor #HackerNews #ngated

  9. C++26: more constexpr in the core language | Hacker News

    Link
    C++26:核心語言中更多 constexpr 功能的演進
    https://sandordargo.com/cpp26-more-constexpr-in-the-core-language

    📌 Summary:
    自 C++11 引入 constexpr 以來,constexpr 的應用範圍持續擴大,從最初不支援 if、else、迴圈,到 C++14 允許控制流程,C++17 支援 constexpr lambdas,C++20 更進一步允許動態配置和使用 std::vector 及 std::string。到了 C++26,constexpr 功能獲得更多強化,包括可在常數表達式中從 void 做指標轉型(P2738R1)、支援在 constexpr 中使用 placement new(P2747R2),以及允許宣告 constexpr structured bindings 且放寬 constexpr 參考的綁定規則(P2686R5)。這些語言層面的改變將使更多標準函式庫類型和功能能在編譯期進行運算,進一步提升程式碼效率與安全性。此外,未來還將探討 constexpr 支援例外處理與標準函式庫的延伸。此演進不僅推動編譯期編程由傳統模板技巧轉為更直觀且可驗證的方式,也為編譯器實作帶來新挑戰。

    🎯 Key Points:
    → P2738R1:C++26 允許在 constexpr 表達式中從 void 指標轉型到物件實際類型的指標,限制不可轉向不同類型或基類指標。此設計可支援更多標準函式庫元件(如 std::format、std::function、std::any)在編譯期運作,主要因為 void 用於減少模板實例化和二進位符號數量的「編譯防火牆」技巧。
    → P2747R2:新增 constexpr 版本的 placement new,可彌補 std::construct_at 僅支援值初始化的不足,使得在 constexpr 環境下更靈活地進行物件預置建立。此功能須仰賴 P2738R1 中 void 指標轉型的支持解決類型轉換問題。
    → P2686R5:允許宣告 constexpr structured bindings,並放寬 constexpr 參考綁定規則。constexpr 參考可綁定於自動存取期間且相對於堆疊框架地址不變的變數,但例如 lambda 捕獲的外層變數因無法確定常數地址而不符條件,故有限制。此改進讓 constexpr 編寫更靈活、結構化。
    → 綜合以上,C++26 大幅推動 constexpr 技術由語言核心擴展,為日後標準函式庫更多 constexpr 化奠定基礎,並促進從繁複模板元編程向更語義明確、編譯期安全的編程模式轉變。
    → 使用者與開發者須留意編譯器實作狀況,目前多數主流編譯器對 C++20 甚至 C++23 支援仍未完全,C++26 的新功能落地仍需時間。
    → 文章後續將描述標準函式庫的 constexpr 支援演進,以及 constexpr 例外處理的相關變化,需結合語言與函式庫面雙重改良。

    🔖 Keywords:
    #constexpr #C++26 #void轉型 #placement_new #structured_bindings

  10. Apparently, #C++ developers are so smitten with `constexpr` that they're willing to sacrifice their first-born to it in #C++26. 🤷‍♂️ Gone are the days of simple "Hello, World" — now it's all about wrangling `constexpr` lambdas while hoping the compiler gods smile upon you. 😅
    sandordargo.com/blog/2025/04/2 #constexpr #programming #humor #developercommunity #HackerNews #ngated

  11. Apparently, #C++ developers are so smitten with `constexpr` that they're willing to sacrifice their first-born to it in #C++26. 🤷‍♂️ Gone are the days of simple "Hello, World" — now it's all about wrangling `constexpr` lambdas while hoping the compiler gods smile upon you. 😅
    sandordargo.com/blog/2025/04/2 #constexpr #programming #humor #developercommunity #HackerNews #ngated

  12. C++26 — встреча ISO в Хагенберге

    В середине февраля в Хагенберге состоялась встреча международного комитета по стандартизации языка программирования C++. В этот раз прорабатывались следующие большие темы: std::hive Constexpr, ещё больше constexpr Безопасность, контракты, hardening, профили, UB и std::launder Relocate #embed Об этом и других новинках расскажу в посте

    habr.com/ru/companies/yandex/a

    #c++29 #с++29 #c++26 #с++26 #с++ #c++ #reflection #constexpr #exception #simd #safety #security #undefined_behavior #memory #byte #bit #contracts #relocation #hive #object_pool #embed

  13. ISO C++ — встреча международного комитета в Польше

    В конце ноября состоялась встреча международного комитета по стандартизации языка программирования C++. В этот раз без внимания не остались темы: Рефлексия времени компиляции и оператор «монобровь» Constexpr, много constexpr SIMD Structured bindings as a pack Безопасность, контракты, libc++ hardening, профили, UB и std::launder Сколько бит в байте? Об этом и других новинках расскажу в посте

    habr.com/ru/companies/yandex/a

    #c++26 #с++26 #с++ #c++ #reflection #constexpr #consteval #exception #simd #safety #security #undefined_behavior #memory #byte #bit