よるフォントの置換テクニックが有効であった。フォント設定を、自分が一番読みやすいフォントに設定しておくという方式にした。Language)というプログラミング言語を覚え直していた。リンク先のサイトには以下のような特徴が挙げられている。bindings平たく言うと、メモリ安全で、データ競合も起こらず、C言語並みに軽くて速いという。文でパワータイプによるポリモーフィズムもサポートされているという尖りまくりの言語であることがわかった。なんかちょっと欲張って取ってつけた感が否めない。キーワードも、なんか必然性を感じない。取って代わりうる言語の中で、頭一つ抜き出ているものの、少し不安な要素もある。プラグインや、開発支援ツールの充実度でも、某G言語にはまだまだ遠く及ばない感じ。厳密で突き抜けた部分を合わせると最強のシステム記述言語になり得るのではないだろうか。現状はまだまだ人柱を絶賛募集中といったところか。Nerd今日ハマったC++の落とし穴。次のコードの出力結果を予想してください。zero.となって欲しいところだけど、実際には以下のようになる。直後にセミコロンをつけ忘れたことにある。型の式だったんですな。書くのは仕様上セーフであるらしい。zero");}と解釈され、めでたく全く意図とは正反対の挙動をするというわけでした。セミコロンの要らないモダンな言語に侵食されると、この手のミスが増えることが予想されます。これを機に中括弧を省略しない宗派に切り替えることも検討中。問題Tweet広告を非表示にするもっと読むコメントを書く2017-01-19一時オブジェクトの寿命C++先輩にバグじゃないの?と指摘されたコード。使ったコードを国際化対応した文字列クラスに一括置換したときに生じたものだ。プロダクションには使われていないが、一瞬、嫌な汗をかいた。結論から言うとこれは合法だった。コンパイラも完全にスルーしていたので気付かず。呼ばれ、一時オブジェクトが作られる。一時オブジェクトをconst参照で受けた場合、一時オブジェクトはconst参照に束縛されるというルールがあり、const参照変数のスコープまで延命される。したがってfor文のスコープ内で使うことができる。参照で受けてコピーを作らないという意図も叶っておらず、単にややこしいだけなので、早々に直したほうが良いだろう。09:57一時オブジェクトの寿命Tweet広告を非表示にするもっと読むコメントを書く2016-12-10VC++のunordered_set/unordered_mapが遅い件C++正確に言うと、insertが同種のset/mapに比べて圧倒的に遅い。最近、メモリの節約のために辞書的なオブジェクトを作成して、同値のオブジェクト(例えば文字列)を再利用するようなコードを書いたところ、unordered_set/unordered_mapで思うような性能が得られなかった。2015でプロファイルをとってみた。0;}で、結果がこちらサンプルの要素数が増えれば増えるほど差は広がるばかり。StudioのSTLの実装特有の問題っぽい。Studio上でunordered_set/unordered_mapを旧来のset/mapの代わりに使う際には、必ずベンチマークをとって、挿入性能劣化に見合う検索性能の向上の恩恵に与れるかどうかを確認したほうが良さそうだ。やれやれ......追記:xoinu.hatenablog.com2年前にint型のコンテナで挿入のパフォーマンスのチェックをやってた。そのときの結果と少し矛盾している。これを見るにVC++のxhashヘッダにあったstd::hash_value()関数がよろしくないのかもという気がする。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。