並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 14 件 / 14件

新着順 人気順

std string_view constexprの検索結果1 - 14 件 / 14件

  • C++ コンパイル時「出力」 ~C++にできないことはない~ - Qiita

    これは、 C++ でコンパイル時に出力まで済ませようとした話です。 コンパイラは GCC に限ります。 はじめに もうすぐクリスマスですね! クリスマスにすることといえば……、 そう、コンパイル時処理ですね!! コンパイル時処理 C++ のコンパイル時処理は非常に強力で、様々なことがコンパイル時にできてしまいます。 普通はコンパイル時に決まる定数の計算に使われますが、これを悪用利用してコンパイル時に処理がすべて終わるようなものも書くことができます。 例として、コンパイル時 FizzBuzz を書いてみます。 #include <array> #include <string_view> #include <algorithm> #include <concepts> #include <iostream> template <std::unsigned_integral T> conste

      C++ コンパイル時「出力」 ~C++にできないことはない~ - Qiita
    • 2023年のコンパイル時レイトレーシング - in neuro

      これは qiita.com の12/16の記事です。やばいもう16日が終わってしまう! はじめに 太古の昔、あるC++プログラマ*1がtemplateの再帰と特殊化を使ってコンパイル時に計算ができることを「発見」*2*3したその日から、C++とコンパイル時計算は分かちがたく結びついています。 言語機能を本来意図されていなかった方法で活用する曲芸的な技巧だったコンパイル時計算は、その強力さを買われコミュニティを席巻し、C++11での constexpr の導入によりある意味で公式に認められたものとなりました。 導入当初は return 文一つだけしか持てなかった constexpr 関数は、それでも三項演算子による条件分岐や再帰によってコンパイル時計算を大いに盛り上げました。 そしてC++14で条件分岐、ループ、変数の書き換えが、C++17ではラムダが、C++20では仮想関数と動的メモリ確保

        2023年のコンパイル時レイトレーシング - in neuro
      • Text Editor Data Structures

        Text editors can be an interesting challenge to program. The types of problems that text editors need to solve can range from trivial to mind-bogglingly difficult. Recently, I have been on something of a spiritual journey to rework some internal data structures in an editor I have been building, specifically the most fundamental data structure to any text editor: the text. Table of Contents Resour

          Text Editor Data Structures
        • C++ コンパイル時パスワード認証 〜コードを不正コンパイルから守ろう!〜 - Qiita

          ラクラムシ「今回は C++ に関する内容ですね!」 謎の女性「どういった内容ですか?」 ラクラムシ「 C++ でコンパイル時にパスワードを要求する方法について説明していきます!」 謎の女性「よろしくお願いします!」 この記事では、C++ でコンパイル時にパスワードを要求する方法について説明します( UNIX 系の環境に限ります)。 コンパイル時パスワード認証 みなさんは、プログラミングをするときにソースコードを公開していますか? ソースコードを公開することで、ほかの人にバグを指摘してもらったり、新機能を提案してもらったりすることができます。 ソースコードを共有できるサイトはいろいろありますが、代表的なものに GitHub があります。 GitHub は無料で利用できるので、ソースコードを共有してみたいという人は使ってみましょう! しかし、「コードを見られるのはいいけど、勝手にコンパイルされ

            C++ コンパイル時パスワード認証 〜コードを不正コンパイルから守ろう!〜 - Qiita
          • Mozc の技術解剖 ― Google 日本語入力を支えるオープンソースエンジンの内部構造 - Qiita

            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Mozc は、堅牢なアーキテクチャと拡張性の高い設計により、日本語入力という複雑な問題に対してエレガントな解を提供している。 Windows版はWindows Storeに登録されていないようなので、自分でビルドしないといけないようだ。ビルドのための環境構築や、エラー処理などが多少なりとも伴うので、ここはClaude Codeに助けてもらったら、結構短時間で出来上がった。 中々の使い心地なので、以下Mozcの特徴を上げてみた。 クライアント・サーバー型アーキテクチャ Mozc の最大の特徴は、IME(入力メソッド)をクライアントとサーバ

              Mozc の技術解剖 ― Google 日本語入力を支えるオープンソースエンジンの内部構造 - Qiita
            • GCC 16 Release Series — Changes, New Features, and Fixes - GNU Project

              GCC 16 Release Series Changes, New Features, and Fixes This page is a "brief" summary of some of the huge number of improvements in GCC 16. You may also want to check out our Porting to GCC 16 page and the full GCC documentation. Caveats int8_t etc. are now signed char on Solaris for conformance with the C99 standard. However, this is an incompatible change. See the porting notes for more informat

              • 21st Century C++ – Communications of the ACM

                It is now 45+ years since C++ was first conceived. As planned, it evolved to meet challenges, but many developers use C++ as if it was still the previous millennium. This is suboptimal from the perspective of ease of expressing ideas, performance, reliability, and maintainability. Here, I present the key concepts on which performant, type safe, and flexible C++ software can be built: resource mana

                • C++ へようこそ - モダン C++

                  C++ は、作成以来、世界で最も広く使用されているプログラミング言語の 1 つになりました。 適切に記述された C++ プログラムは、高速で効率的です。 この言語は他の言語に比べて柔軟性が高く、最高レベルの抽象化からシリコンに近いレベルまで対応できます。 C++ によって、高度に最適化された標準ライブラリが提供されます。 これにより、低レベルのハードウェア機能にアクセスして、速度を最大化し、メモリ要件を最小限に抑えることができます。 C++ では、ゲーム、デバイス ドライバー、High-Performance コンピューティング、クラウド、デスクトップ、埋め込み、モバイル アプリなど、ほぼすべての種類のプログラムを作成できます。 他のプログラミング言語のライブラリやコンパイラも C++ で記述されています。 C++ の最初の要件の 1 つは、C 言語との下位互換性でした。 その結果、C++

                    C++ へようこそ - モダン C++
                  • [C++]WG21月次提案文書を眺める(2022年05月) - 地面を見下ろす少年の足蹴にされる私

                    文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-05 全部で36本あります。 N4912 2022-11 Kona hybrid meeting information N4913 PL22.16/WG21 agenda: 25 July 2022, Virtual Meeting P0543R1 Saturation arithmetic P0792R9 function_ref: a non-owning reference to a Callable P0901R9 Size feedback in operator new P1021R6 Filling holes in Class Template Argument Deduction P1255R7 A view of 0 or 1 elements: views::maybe P

                      [C++]WG21月次提案文書を眺める(2022年05月) - 地面を見下ろす少年の足蹴にされる私
                    • Code Generation in Rust vs C++26

                      One of the things I like to do is compare how different languages solve the same problem — especially when they end up having very different approaches. It’s always educational. In this case, a bunch of us have been working hard on trying to get reflection — a really transformative language feature — into C++26. Fundamentally, reflection itself can be divided into two pieces: Introspection — the a

                      • 列挙値(enum)から文字列への変換 in C++26

                        本記事の内容は、まだ検討段階にあるC++言語仕様を前提としています(2025年12月現在)。2026年予定の国際標準発行までに、今後も仕様変更が行われる可能性があります。 列挙値から文字列への変換 C++プログラム中で「列挙値(enum型の値)から文字列へ変換」したい場合、退屈で保守性の低いコードを人力記述する必要がありました。大抵のプログラミング言語なら変換関数だけで済むのに面倒くさ...と思った、そこのあなたに向けた内容の記事です。 #include <iostream> #include <cassert> // 列挙型Colorを定義 enum class Color { Red = 1, Green = 2, Blue = 3 }; // Color列挙値から名前(文字列)へ変換 const char* color2name(Color val) { switch (val) {

                          列挙値(enum)から文字列への変換 in C++26
                        • Row Polymorphism in C++20 - CADDi Tech Blog

                          Summary This post is my hobby and has nothing to do with work. I have wanted Extensible Records (a library in Haskell) for a long time. The time has finally come. The language features we need to implement it are there in C++20! Therefore, this post will show you how to emulate row polymorphism in C++20. The latest, complete code can be found in this repository. Row Polymorphism Row polymorphism i

                            Row Polymorphism in C++20 - CADDi Tech Blog
                          • 地面を見下ろす少年の足蹴にされる私

                            文書の一覧 JTC1/SC22/WG21 - Papers mailing2025-12 全部で113本あります。 もくじ N5011 Brno 2026 N5029 WG21 2025-10 Kona Admin telecon minutes N5031 WG21 2025-11 Kona Minutes of Meeting N5032 Working Draft, Standard for Programming Language C++ N5033 Editors' Report - Programming Languages - C++ P1317R2 Remove return type deduction in std::apply P1789R2 Library Support for Expansion Statements P1789R3 Library Suppor

                              地面を見下ろす少年の足蹴にされる私
                            • RubyKaigi 2023直前、RubyKaigi 2022 YJITの話題を振り返る - OPTiM TECH BLOG

                              概要 YJITは「Versioning of basic blocks」と「Lazy code generation」をキーコンセプトに据えて設計されていて、古典的なJITコンパイラがメソッドベースでのみ判断するのとは対照的に、Basic Blockのような細かい単位で判断を行う。 YJITがRubyに入ったことで、YJITユーザーはrustcのライフサイクルを気にする必要が出てきた。 はじめに Optimal Biz開発チームの戸舘です。私は業務では主にRubyを使ってWebアプリケーションの開発をしつつ、一方では C++ と COM を用いてWindows Serviceアプリケーションを開発しています。そんなC++erです。 2022年9月8~10日に開催されたRubyKaigi 2022がつい昨日のことのように思う今日このごろですが、まもなくRubyKaigi 2023が松本で5月

                                RubyKaigi 2023直前、RubyKaigi 2022 YJITの話題を振り返る - OPTiM TECH BLOG
                              1