You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
My last post C++20: The Big Four started with an overview of concepts, ranges, coroutines, and modules. Of course, C++20 has more to offer. Today, let’s continue my overview of the core language. Looking at the image, you see the features I want to cover. The three-way Comparison operator <=> The three-way comparison operator <=> is often just called the spaceship operator. The spaceship operator
P0631R8 Math Constants C++20で数学定数が入ることが決まりましたね。やっと標準ライブラリの範囲で円周率を定数として使えるようになります。 ここまでの道のりですが、 constexpr (C++11) 変数テンプレート (C++14) インライン変数 (C++17) 数学定数 (C++20) とても長かったですね。 #include <iostream> #include <numbers> template <class T> T degree_to_radian(T x) { return x * std::numbers::pi_v<T> / static_cast<T>(180.0); } int main() { float y = degree_to_radian(90.0f); std::cout << y << std::endl; // 1.570
C++に静的例外が提案されている。 [PDF] P0709R1: Zero-overhead deterministic exceptions: Throwing values 例外はそのパフォーマンスへの影響が懸念され、一部のC++プロジェクトではコンパイラーオプションによって例外自体が無効化されていた。 これは由々しき事態だ。というのも、例外は標準C++の機能の一部であり、標準ライブラリは例外の存在を前提にして設計されている。例外が無効化されているということは、それはもはやC++ではない。C++風の別言語を使っていることになる。 なぜ例外は忌避されるのか。例外のパフォーマンスが非決定的だからだ。例外の実装はスタックからの確保ではなくヒープからの動的なメモリ確保が必要で、例外のキャッチにはRTTIによる型情報の比較が必要だ。 ifとgotoによるエラー処理のパフォーマンス特性は決定的に見
_ 江添亮の詳説C++17 アスキーの鈴木さんからいただいた。 電話帳のような本を想像していたら、とんでもなくコンパクト(対電話帳比。ところで今も電話帳って存在するのか?)で驚いた。C++17の新機能に的を絞った本だからだった。 これはおもしろい。 とりあえず読み始めると、早くも本文2ページ目にして筆者がLinus翻訳で磨き上げた表現、つまりそびえたつものが出て来たりするので、単に規格書を翻訳して味付けした本ではないということがわかる。まあ、鈴木さんのところでそういう本を作ることはあり得ないだろう。というわけで、江添さんの規格書フィルターと特徴的な文体(客観的に突き放した主観表現)が特徴の本ということになる。割と好きだ。 それにしても(と読みながら思う)、プリプロセッサはクソだから捨てるべしとストラウストラップが書いていたように思うのだが、C++でポータビリティがあるコードを書くためには結
Compile Save Reboot Emscripten API Download and display a file Call a function after a delay Run a script Header Libraries Boost.Format Range v3 comprehensions HTML Integration Custom console Counter: C++ and JS calling into each other Canvas: bouncing lines WebGL: flying bunnies clang-format: Reboot Run Reboot
Software is Crap Bugs, design failures, and neglected documentation. Let's do better. I know that a lot of people struggle with understanding the memory model introduced in C11/C++11. In a recent conversation I was alerted to the existence of this blog post, which while correct (by my understanding) is in my opinion aimed at those who already have a good understanding of some of the underlying con
「ITに全く関係ない分野からITに飛び込んで活躍しているエンジニア」や「ITとIT以外の分野の境界を行き来しながら成果を上げているエンジニア」などを「越境エンジニア」と名付け、1カ月に一人ずつインタビューを掲載する。今月取り上げるのは村上原野(むらかみげんや)氏。縄文土器にインスピレーションを受けた創作を行っている陶芸家だ。同時にネットでは「狂える中3女子ボレロ村上」というハンドルネームでC++に詳しいプログラマーとしても知られている。今回は、縄文文化に深く影響を受けた生い立ちやプログラミングとの出会いなどを聞いた。 私の肩書は縄文造形家であり、陶芸の縄文アートを手掛けています。縄文アートとは、日本の縄文時代の造形やスピリットにインスピレーションを受けたアートの総称です。私はその中でも、現代の窯で焼く陶芸とは全く異なる縄文時代の焼き方、土、造形技法といった縄文そのものの技法を再現して創作を
A few minutes ago, the ISO C++ committee completed its fall meeting in Albuquerque, New Mexico, USA, hosted with our thanks by Sandia National Laboratories. We had some 140 people at the meeting, representing 10 national bodies. As usual, we met for six days Monday through Saturday, including several evenings. The following are some highlights of what we achieved this week. You can find a brief su
はじめに こんにちは、C++標準会員の江添です。 今日は普段から表に出ている、閉鎖的なゲーム開発では使われていない開発環境についての紹介をします。 今回紹介するのは、ISO国際標準規格プログラミング言語の「C++」です。 なんと表の世界では、国際標準のプログラミング言語は、コンパイラーベンダーやC++利用企業と行ったC++に利害関係を持つ多数の代表が国際標準規格を制定しているのです。当たり前でしょ? C++は以下のような特徴を持っています。 エラーに気づきやすい静的型付け言語 C++経験者が理解しやすい言語仕様 OSに依存しない移植性の高いC++実装 実行環境に依存しないC++規格準拠の挙動の定義 C/C++の関数・クラスに最初からバインドされている 今でもクローズな実装の詳細のわからないプログラミング言語がたくさんあり、それらを使うデメリットは数多くあります。 国際規格の言語を使うのは様
What is the first thing you do when you start a new project? Me, I install Google Test (or an equivalent) to make sure I have a decent test coverage from the start. What then? Boost (which module)? range-v3? sqlpp11? curl? openssl? Those are just very general dependencies I’ve seen in a lot of projects. There’s no way around it, the standard library cannot cover everything, so a project will need
本記事は東京大学工学部電子情報工学科の「大規模ソフトウェアを手探る」という実験の報告記事です 学校の授業でOSSにコントリビュート? 東京大学工学部電子情報工学科にはあらゆる工学系学科の例に漏れず「実験」の授業があります。 実験の内容はいくつかのテーマの中から選択することができ、例えば 「OpenCV/OpenGLによる映像処理」 「情報可視化技術とデータ解析」 「AIロボットを作ろう」 などのテーマが用意されています。 私はその中から 「大規模ソフトウェアを手探る」 というものを選択し、 その結果としてFirefoxのJavaScriptエンジンである SpiderMonkeyにコントリビュートすることができました。 コミットログ1(私の名前のコミット): https://hg.mozilla.org/mozilla-central/rev/7371550c7fc5 コミットログ2(ペア
C++ Templates: The Complete Guide, 2nd Edition - InformIT C++ Templates: The Complete Guide (2nd Edition) - Amazon.co.jp 書籍『C++ Templates: The Complete Guide』の第2版が発売しました。 初版はC++03でしたが、今回の改訂でC++17対応しています。 この本は、『C++テンプレート完全ガイド』というタイトルで初版が邦訳されています。C++03のときに、この本にお世話になった人はすごく多かったと思います。新しくなってこの本が長く残ってくれるのは、うれしい限りですね。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く