yohhoyの日記

技術的メモをしていきたい日記

2016-12-01から1ヶ月間の記事一覧

shared_ptr参照カウントとデータ競合

C++1z(C++17)標準ライブラリでは、スマートポインタstd::shared_ptr<T>のuniqueメンバ関数は非推奨(deprecated)とされる*1。上位互換となるuse_countメンバ関数は残存するが、スレッド間同期には関与しないという要件が明確化され、マルチスレッド実行ではその</t>…

スーパークラスのprivateフィールドにアクセス

プログラミング言語Javaでは、スーパークラスのprivateフィールドはサブクラスへ継承(inherited by)されず、原則としてスーパークラス外部からはアクセスできない。ただし特定の条件下において、サブクラスからスーパクラスprivateフィールドへのアクセスが…

モニタ同期・待機処理と再帰ロックサポート

プログラミング言語Javaが提供するモニタ同期(synchronized構文)および待機処理(Object#wait)は、再帰ロックのセマンティクスをサポートする。*1メモ:待機処理でも再帰ロックをサポートする仕様は珍しい?C++標準ライブラリ(→id:yohhoy:20120802)やPO…

<--(中略)-- 演算子

C++

プログラミング言語C++のヘンテコな演算子。💘(U+1F498) #include <iostream> int main() { int n = 100; while ( 0 <-------------------- n) { // !? std::cout << n << ' '; } } 実行結果: 90 80 70 60 50 40 30 20 10 タネ明かし 前掲C++ソースコードの振る舞いを括</iostream>…

range-based forと文字走査

C++11で導入された range-based for 構文を用いて、文字列を一文字づつ走査する方法。*1 文字列リテラル 文字列リテラルはconst char配列型(→id:yohhoy:20150213)であるため、range-based for 構文による要素走査が可能。ただし文字列リテラル末尾に自動追…