タグ

C++に関するtanakaBoxのブックマーク (157)

  • 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
  • C++20からC++23までの変化

    決断するための勇気、そのためのBacklog / Courage to make decisions, Backlog for that.

    C++20からC++23までの変化
  • 競プロで役立つC++20新機能 - Qiita

    はじめに 競プロのコーディングが快適になるC++20新機能をまとめました!! C++20の豊富な新機能から競プロで便利な機能を合計で16個紹介します. ※(2023/8/7追記) AtCoderでは2023年の言語アップデートにより、ほとんどの機能が使用可能となりました。新バージョンのgcc12.2では、紹介されている機能のうち <format> を除くすべての機能が使用可能です。 参考文献 https://cpprefjp.github.io/lang/cpp20.html https://en.cppreference.com/w/cpp/20 を参考にしました. cpprefjp以外をあまり見ていないので,間違っているところがあるかもしれません. 誤りに気づいたら指摘していただけると幸いです. 標準ライブラリの新機能 1. コンテナのメンバ関数の追加 1-1. 連想配列に conta

    競プロで役立つC++20新機能 - Qiita
  • More C++ Idioms - Wikibooks

    C++ はあまりに『熟練者に優しく』なってしまった」(C++ has indeed become too "expert friendly") Stroustrup 氏の言は真実である。なぜなら熟練者は言語のイディオムに深く精通しているからである。プログラマが理解するイディオムの増加に従って、言語は彼あるいは彼女にとってよりフレンドリーになる。この open content book の目的はほどほどに C++ に精通しているプログラマに対して現代的な C++ のイディオムを提示し、C++ をよりずっとフレンドリーに感じるレベルにまで知識を引き上げる助けと成る事である。書は熟練した C++ プログラマが C++ を使ってプログラミングや設計を行う際に用いる事の多い再利用可能なイディオムの網羅的なカタログと成るよう意図されている。これは、それらのテクニックや語彙をひとまとめにしようという

  • Learn Contemporary C++ | Concise&Visual Examples

    Learn up-to-date, idiomatic C++ with code examples, concise explanations, cheat sheets and infographics. -- Lerne aktuelles, idiomatisches C++ mit Code-Beispielen, knappen Erklärungen und Infografiken. -- 学现代的C++ // 代码示例,简洁的说明和图表

    Learn Contemporary C++ | Concise&Visual Examples
  • Siv3D

    If you are not redirected, please use the following links: Japanese English

  • How to debug C and C++ programs with rr | Red Hat Developer

    The common theme in many time-travel movies is to go back in time to find out what went wrong and fix it. Developers also have that desire to go back in time and find why the code broke and fix it. But, often, that crucial step where everything went wrong happened long ago, and the information is no longer available. The rr project lets programmers examine the entire life of a C or C++ program run

    How to debug C and C++ programs with rr | Red Hat Developer
  • C++ 関連の略語 - C++ の歩き方 | cppmap

    Home C++ 規格 記事 学習 ライブラリ ツール 貢献 C++ 関連の略語¶ ABI | Application Binary Interface¶ アプリケーション・バイナリ・インタフェース ACCU | Association of C and C++ Users¶ C および C++ ユーザ協会。年次カンファレンス の開催や「Overload」の刊行などを行う。 ADL | Argument Dependent Lookup¶ 実引数依存の名前検索 ANSI | American National Standards Institute¶ 米国国家規格協会 API | Application Programming Interface¶ アプリケーション・プログラミング・インタフェース ASan | AddressSanitizer¶ メモリ関連のエラーを検出する動的解析ツール

  • 文字列から浮動小数点数に変換する、なるべく速く - toge's diary

    TL;DR 文字列から浮動小数点数に変換するならfastfloat使いましょう。 私が試せる環境で比較する限り、とても速いです。 細かいことが気になります C++でちょっとしたプログラムを書くときにいつも気になるのが 「文字列データから指定データ型への変換処理をどうやって効率的に書くか」 です。私だけかもしれませんが。 特に悩んでしまうのが「文字列→浮動小数点」です。 std::scanf, std::stringstreamを使うものは大抵すごく遅い std::strtodstd::stodはstd::stringへの変換が入るので避けたい std::from_charsは(libstdc++が)浮動小数点型に対応していない boost::sprit::qiが何故か速いのだけれどこのためにboost::sprit使うのは重い と色々制約が多いのです。どうにかならないものか。 fast_f

    文字列から浮動小数点数に変換する、なるべく速く - toge's diary
  • ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck

    ゲーム開発者のための C++11~C++20, 将来の C++ の展望 【CEDEC ページ】https://cedec.cesa.or.jp/2020/session/detail/s5e8327a52702c 【解説付きの書籍版 📚】https://zenn.dev/tetsurom/books/cpp11-cpp20-for-game-developers

    ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck
    tanakaBox
    tanakaBox 2020/09/04
    益々ヤバい。
  • Google C++ Style Guide

    Background C++ is one of the main development languages used by many of Google's open-source projects. As every C++ programmer knows, the language has many powerful features, but this power brings with it complexity, which in turn can make code more bug-prone and harder to read and maintain. The goal of this guide is to manage this complexity by describing in detail the dos and don'ts of writing C

  • Rustが敗北!?C++で書かれた新時代のWebアプリケーションフレームワーク「drogon」 - Qiita

    つい昨日(日時間では今日)、TechEmpowerが行っているWebアプリケーションのベンチマーク結果が更新されました。 なんと、Round 18ではRustのフレームワーク「actix-web」が2位以下に大差をつけて圧勝していたにも関わらず、Round 19ではさらにそれを上回るライブラリが出現しました。 その名もdrogon! 名前からして素晴らしいフレームワークの予感がしますが、Rustのactix-webとはどのような点で異なり、またどのようにしてこの速度を達成したのか気になったので調べてみました。 フルスタックのライブラリ drogonはフルスタックのWebアプリケーションフレームワークとして実装されています。つまり、(actix-webとは違い)データベースとのやり取りを行うAPIやJSON, ORM, HMRなどさまざまな機能が盛り込まれています。 一方actix-web

    Rustが敗北!?C++で書かれた新時代のWebアプリケーションフレームワーク「drogon」 - Qiita
  • C++ 書籍 - C++ の歩き方 | cppmap

    C++ 書籍¶ C++ の学習に役立つ最新の書籍を紹介します。 初学者向けの入門書には マークを付けています。 C++14 以降を扱った書籍¶ 書名 発行年 C++ 規格 内容

  • 競プロに便利な C++17 新機能まとめ - Qiita

    AtCoder の言語アップデート で、C++17 対応コンパイラが使えるようになりました。やったー! この記事では、競技プログラミングに役立つ C++17 の新しい標準ライブラリ・言語機能を 16 個紹介します。 サンプルコードは、AtCoder の GCC 9.2.1 システムで動作を確認しています。 C++17 標準ライブラリ機能 1. 値を範囲内に収める std::clamp(x, min, max) 値 x を、min 以上、max 以下に収めてくれる関数です。 これまで std::max(std::min(x, max), min) と書いてたのが 1 つの関数で済みます。 #include <bits/stdc++.h> int main() { // 値を 0 以上 100 以下に収める std::cout << std::clamp(50, 0, 100) << '\n'

    競プロに便利な C++17 新機能まとめ - Qiita
  • コンパイラのいじめかた / How to fight the compiler

    C++MIX #6

    コンパイラのいじめかた / How to fight the compiler
  • 競技プログラマのための抽象セグメント木実装のすすめ - beet's soil

    午前起床!(素振り) はじめに 先にこっちを見て beet-aizu.hatenablog.com うし木(一点更新区間取得)について書きます おまけ なんだこれはたまげたなあ(わかる人にはわかる記事、わからない人にはわからない) beet-aizu.hatenablog.com 前提知識(C++) 厳密性や歴史的背景をガン無視しています。あんまりあてにしないでください。 雰囲気を掴むためと割り切って読んでもらえるといいと思います。 C++のバージョンは14を前提にしていますがそのうち17に上がりそう? struct is 何 競技プログラマならpairやtupleくらいは使ったことがあると思いますが、自分でそういうのを作るための機能です。 たとえば struct Node{ int fi,se; }; Node v; v.fi=0;v.se=1; みたいな感じで使えます。 つまり、大きな

    競技プログラマのための抽象セグメント木実装のすすめ - beet's soil
  • PLF Library

    PLF C++ Library PLF is a collection of header-only library modules for C++. Please click on the links below to learn more about the different modules and to download. All modules are under a permissive Zlib license and support C++98/03/11/14/17/20/23. Tested compilers include Clang 3.71-14, GCC 4.6-11 and MS Visual C++ 2010-2022. blog - A random collection of thoughts, assembled and poorly filtere

  • 江添亮のC++入門

    書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶためのである。書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。書はいわばC++における知識のブートストラップを目指しただ。これにより読者はを先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。 C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦し

  • C++11のスレッド、アフィニティ、ハイパースレッディング | POSTD

    背景と導入 何十年もの間、CやC++の標準規格は、マルチスレッディングや並行処理を「その標準の範囲を超えたもの」として扱ってきました。標準規格の目的である”抽象機械”の力が及ばない、”対象依存”という影の世界においてです。メーリングリストやニュースグループの質問には並行処理に関するものが山ほど寄せられましたが、それらにすぐに突き返された回答は「C++はスレッドには関知しません」という何とも冷淡なものでした。この件によって当時のことを思い出す人々は、今後も絶えないでしょう。 しかしC++11の登場で、そんな状況に終止符が打たれたのです。C++標準化委員会は、時代の流れに乗らないと、この先C言語が取り残されてしまうと悟ったのでしょう。彼らはスレッドや同期メカニズム、アトミック操作、メモリモデルなどの存在に、ようやく気付いたわけです。そして標準規格として、C++コンパイラやライブラリのベンダーに

    C++11のスレッド、アフィニティ、ハイパースレッディング | POSTD
  • boostjp

    サイトは、Boost C++ Libraries日語コミュニティのWebサイトです。 Boost C++ Librariesに関する最新情報、日語ドキュメント、Boost.勉強会の情報などを提供していきます。 このWebサイトは、以下のGitHubリポジトリにて作成を行っています。 boostjp/site : WebサイトのMarkdownソース boostjp/image : Webサイトで使用する画像リソース 関連サイト C++リファレンスサイト cpprefjp 運営者 boostjpは、以下のコアメンバが運営を行っています: Akira Takahashi Usagi Ito melpon Kohsuke Yuasa Akiko Yamanouchi ライセンスについて サイトの情報は、クリエイティブ・コモンズ 表示 3.0 非移植 ライセンス(CC BY)の下に提供して