Pebble Coding

ソフトウェアエンジニアによるIT技術、数学の備忘録

2020-05-01から1ヶ月間の記事一覧

C++ 例外クラス

クラスのコンストラクタで異常を上位に返したい場合、例外を用いる以外に術はない。 こんな時は、C++例外クラスをthrowするのが良い。 もちろん例外送出時にはリソースを全て開放しておこう。 C++例外クラスで使えそうなものを上げておく。 いずれも任意の文…

C++11 シングルトン

class Hoge { public: static Hoge& shared() { static Hoge instance; return instance; } private: Hoge(); } C++でシングルトンを作りたい場合は上記のようにすればよい。 C++11より前の仕様では、複数のスレッドからHoge::shared()を呼び出したときにsta…

std::thread 練習帳その1

以下のコードはコンパイルに失敗し、Attempt to use a deleted function となる。 #include <thread> void update(int& data) { data += 2; } int main(int argc, const char * argv[]) { int data = 11; std::thread t(update, data); t.join(); printf("%d\n", dat</thread>…

macOSにて同一のシンボル名のダイナミックライブラリをロードしたらどうなるか

macOSにて同一のシンボル名を持つダイナミックライブラリをロードしたらどうなるかを検証します。 前提条件として、ダイナミックライブラリはインストールパスに@rpathが指定されていることとします。 絶対パスが指定されている場合は、全く異なる動作をしま…

macOS Application バイナリが持つentitlementを知りたい

$ codesign -d --entitlements :- /Applications/Hoge.appアプリ例その1) Executable=/Applications/Hoge.app/Contents/MacOS/Hoge <plist version="1.0"> <dict> <key>com.app…</key></dict></plist>

macOS コードサインを確認するコマンド

$ codesign -dvvv libblock.dylib Executable=/Users/pebble8888/Library/Developer/Xcode/DerivedData/block-dfwlkkoafjhqccbfqxydkmopdyll/Build/Products/Debug/libblock.dylib Identifier=libblock Format=Mach-O thin (x86_64) CodeDirectory v=20500 s…