yohhoyの日記

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

2014-08-01から1ヶ月間の記事一覧

ビットフィールド幅の上限値

C C++

プログラミング言語C/C++におけるビットフィールド幅上限値の差異についてメモ。C++でも型サイズを超えるビット幅指定は避けるべき。 struct X { int m : 100; // ?? }; C: 指定した型サイズsizeof(int)*CHAR_BITを超えてはならない。 C++: 型サイズを超えた…

記事"AndroidのためのSMP入門"

Android Developers公式にて公開されているマルチスレッドプログラミング入門記事。主にARMアーキテクチャを対象として、ハードウェア・メモリモデルの理論的説明と、Java/C/C++プログラミングでの実践的な留意点に言及している。(題名に反して、Android固…

オペランド指定無しthrow式

C++

プログラミング言語C++のオペランド指定無しthrow式の振る舞いについてメモ。 #include <iostream> void do_rethrow() { // オペランドなしthrow式 throw; } int main() { try { try { throw 42; } catch (...) { // int型の値42を再throwする do_rethrow(); } } catch</iostream>…

論理/物理プロセッサコア数の取得

Boost.Thread 1.56.0では、従来からあるシステムの論理プロセッサコア数取得関数に加えて、物理プロセッサコア数取得関数が追加された。 #include <boost/thread.hpp> int vnum = boost::thread::hardware_concurrency(); // 論理コア数 int pnum = boost::thread::physical_co</boost/thread.hpp>…

volatile変数とマルチスレッドとの関係についての押し問答(後編)

C++

プログラミング言語C++のvolatile変数がスレッド間の同期機構として機能するか否かという論点について、有りそうな質問とその答えについての簡易メモの続きの続き。(自身の思考整理用)ある変数がスレッド間の同期機構として機能するためには、下記3つの性…