当サイトで扱っているテーマやそれに近しい分野から、直近1週間ぐらいの Web記事や書籍などの情報を紹介します。管理者が目を通したタイミングが遅いこともあるので、実際に公開された時期はもっと古い可能性があります。
「難易度」は、「入門」「初級」「中級」「上級」の4段階で、大体以下のような感覚で割り当てています。
本ページはアフィリエイトプログラムによる収益を得ています。ページ内のリンクから、各種販売サイトに移動して商品を購入されると、Programming Place 管理者に紹介料が支払われます。
C言語の拡張コンパイラの TrapC を紹介する英語記事です。
TrapC は、C/C++ の重大な懸念であるメモリ安全性の問題に対する解決策として提案されています。goto と union を機能から取り除いたり、コンストラクタやデストラクタといった C++ の機能の一部を追加していたりしているほか、メモリ管理が自動的に行われる設計になっているとのこと(ただし GC ではない)。
安全なC言語を望みながらも、もう少しだけ(学ぶのが大変にならない程度に)C++ に近い機能性を目指しているようです。
C++17 で追加された std::optional を紹介し、これをさらに便利に使えるようにする、C++23 で追加された transform、and_then、or_else の各メンバ関数を説明しています。
std::optional は、任意の型の値を持ちつつ、共通の無効値状態の表現ができるようにしたクラステンプレートです。たとえば、ただの int型では、表現可能な整数のすべてが有効値としてあり得るとき、無効値をどう表現するかに困ることがあります。std::optional<int> で表現すると、有効値はそのまま保持できる一方で、無効値を std::nullopt という特殊な定数で表現できます。
配列の参照型をどうやって記述すればいいかについてまとめています。
reinterpret_cast でポインタ型を変換することによっておこなう type punning(ある型のオブジェクトを、ビット内容をそのままに、異なる型として再解釈すること)が未定義動作になることと、C++20 で追加された std::bit_cast によってこれを避けられることを紹介する英語記事です。
C++ の創始者 Bjarne Stroustrup氏が、C++ を守るための支援をコミュニティに呼びかけているという英語記事です。
C++ は、特にメモリ安全性の面での弱さが強く指摘されています。セキュリティに関する専門機関や専門家たちが、C++ の使用をやめて、Rust などの安全性が高いプログラミング言語を使用するように推奨する動きが進んでおり、Linuxカーネルの一部に Rust が使われ始めるなど、実際の開発でもこうした動きが進んでいます。
「C++ は使わないほうがいい」という C++ への風当りの強さ(これを C++ への “攻撃” と呼んでいる)から、C++ を安全な言語にする働きに対する協力を呼びかけています。Bjarne Stroustrup氏は、メモリ安全性の問題の解決方法の1つとして、 Profiles というメモリ安全フレームワークを標準に提案しています。C++ とはまったく異なるアプローチの新しい何かを作ったり、置き換えたりすることよりも、C++ が C++ であり続けられるアプローチを目指しているようです。
Visual Studio 2022 version 17.13 で追加された新機能を紹介する英語記事です。
Visual Studio 2022 version 17.13 で追加された、デバッグやプロファイリングに関する機能を紹介する英語記事です。
Rakutenブックスにて、「スーパーDEAL!対象の本が最大50%ポイントバック!」が実施されています。終了は 3/11 (火) 9:59 です。
対象になっている本の中から、当サイトの書籍紹介ページで紹介しているものをいくつかピックアップします。
タイトル | リンク | 価格 | コメント |
---|---|---|---|
改訂新版 良いコード/悪いコードで学ぶ設計入門 | Rakuten | 3520 (320pt還元) | 当サイト紹介ページで紹介している初版の改訂。方向性はそのままに、多くの加筆修正が入っています |
プリンシプル オブ プログラミング | Rakuten 当サイト紹介ページ |
2420 (330pt還元) |
当サイトでこの1週間に行った更新の内容を取り上げます。
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
![]() |
管理者情報 | プライバシーポリシー |