はじめに
ディするつもりはないですよ.
実際, すでに各社で自前のライブラリがあるのですよ.
私は, Androidが1.6の時代, NDKが発表された時代にSTLを捨てたので.
前提として, 世の中, 驚くべき〇〇が多いという事実を考慮しなければならない,
日本語どころかどの言葉も通じない, とんでもない人間が多いという事実.
言葉が通じない人間が, プログラミング言語が話せるはずもなく, 疲れからか黒塗りのハイエースに衝突.
項目
std::clamp
IEEE 754特有のハックも考慮してくれるなら使用していきたい.
数学定数
新規のプロジェクトなら使えるけれど, const_expr
なりconst static
で再定義してしまうと思うのだけれど, どうだろう? 結構ヤバい, 変えたらヤバい何かが起きて変えられないジレンマ.
objのフォーマット互換性がないため, Visual Studioのビルドツールを更新できないヤバいプロジェクト, ヤバすぎでしょ.
std::string関係
信頼するとか無理でしょ, 歴史的に考えて. ASCIIこそ唯一のstringな人たちの仕様を, どうやって信じろと?
連想コンテナ
ああ, ゲームにあった連想配列を自前で造るのでいらないです.
using enum
わかりにくくはならなそうなので, よさそう.
コンテナの要素削除
ゲームにおいてはパフォーマンスより, ユーザエクスペリエンスこそ正義なので,
それについて問題にならないなら使いたい. ただし, 本当にまじ〇〇の人が存在しますし, 難しい.
C#だが, 本当にこれをプロダクトのコードに入れた人間がいる, 私は卒倒した.
foreach(var i in list){
if(!i.valid()){
list.Remove(i);
}
}
変数未使用の警告を抑制
悪用されそうなので却下.
__super
とかガチでいれてくるguyがいるので(本人はクールなプログラムをした気らしい).
ビット操作
countは移植性が保障されるなら使いたい.
std::byte
このレベルのプログラムをする人は, 分かっている人なので有用だと思う.
std::filesystem
エンジニア用のツール作成用ならあり. ASCII原理主義者の作ったライブラリなど誰が信じるのか.
名立たるC/C++の教科書がftellの扱いを間違えているのに, 信じられるのか.
構造体の初期化子
Cではすでにできていたような, 有用. 無理矢理けちをつけると, 例のD3D12_VIEWPORTは少し微妙, Vulkanをもってこようぜ, 吐き気がする.
ラムダ式
C++ではパフォーマンスに影響は少ないので気にしない.
C#ではLINQと絡まって, ひと目でわからないコードを書く人が続出するのでヤバい. 私が理解できない馬鹿だからで収まればいいが, そんなコードをあろうことかUniteで発表するプロジェクトがある, しかも1年未満でサービス終了, そういうとこやぞ.
契約による設計
広まらないね, 広めたい.
std::variant
個人的には使っても, 他人には使って欲しくないあれ, まさに共用体.
std::string_view
まじで昨日, 毎フレームstd::stringをコピーしているコードを発見してしまったのよ, やべぇよ, やべぇよ.
文字列
もう無理, だめぽ.
コルーチン
boost::contextベースで自作しているのでいらね.
アロケータ
はげそう(もう, はげてるけど). mimallocとか試しているのよ最近.