ssamembers
議事録 2010/9/21 †
参加者 本間さん、平松さん、西山さん、池田 †
- iPhone/iPadアプリの開発
- autorelease属性の解放タイミングーーーイベントループが一周したとき
イベントコールバックの処理関数内ならば、安全に使用できる
- picker view 初期化しないと表示されない
- UITableViewのセルの背景色 ーー Viewを貼付けないと無理っぽい
西山さんがサンプルプログラムを提供
議事録 2010/10/5 †
参加者 小野さん、平松さん、西山さん、福澤さん、池田 †
議事録 2010/10/19 †
参加者 小野さん、平松さん、西山さん、福澤さん、池田 †
- iPadは売れてない?
- アンドロイドの開発環境
- 基本はJava+エクリプス
- C++だとフレームワークが使えない。
- C++でアンドロイドのアプリケーションを作成して流通させることができるか?
議事録 2010/11/2 †
参加者 福澤さん、本間さん、平松さん、小野さん、西山さん、池田 †
議事録 2010/11/16 †
参加者 福澤さん、本間さん、平松さん、小野さん、西山さん、池田 †
議事録 2010/11/30 †
参加者 福沢さん、平松さん、小野さん、西山さん、池田 †
議事録 2010/12/14 †
参加者 福澤さん、平松さん、小野さん、西山さん、池田 †
議事録 2010/12/28 †
参加者 福澤さん、平松さん、西山さん、池田 †
議事録 2011/1/28 †
参加者 福澤さん、平松さん、西山さん、池田 †
- アンドロイド携帯のレビュー
- shared_ptr, weak_ptr, unique_ptrについて
- .NET LINQ, WPFについて
- break strict-aliasing rules の警告の消し方
議事録 2011/2/1 †
参加者 福澤さん、平松さん、大味さん、池田 †
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vm
C:/Program Files/Java/jdk1.6.0_23/bin/javaw.exe
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
議事録 2011/2/15 †
参加者 本間さん、福澤さん、平松さん、大味さん、池田 †
議事録 2011/3/1 †
参加者 本間さん、渡邉さん、福澤さん、平松さん、大味さん、池田 †
議事録 2011/3/29 †
参加者 渡邉さん、平松さん、大味さん、西山さん、池田 †
- Cにおけるヌルポインタについて
- ヌルポインタとは、無効なポインタの値として定義されてる
- ヌルポインタは、CPUによってゼロアドレスとは限らない
- Cでは、NULLは、#define ((void*)0) で定義されている
- ヌルポインタがゼロではないCPUの場合、コンパイラが、0を本来のヌルポインタ値に変換する
- ソースコード上は、0として扱う。
- コンパイラは、ポインタとして解釈される値が0の場合、CPUのヌルポインタに変換する。
- C言語は変数の型にたいしての自由度が高い言語だが、ヌルポインタだけは厳密に評価されるため注意が必要。
- Cの場合は、ポインタの評価は、NULLとの比較でよい。例: assert(ptr != NULL)
- ANSIに準拠していないコンパイラの場合、assert(ptr)だと正しく動作しない場合がある。
- C++におけるヌルポインタについて
- C++においては、ポインタがヌルかどうかのチェックは、operator bool を利用する。
- 変数を直接NUJLLと比較した場合、Cとの互換性は保たれるが、C++としての意図した動作をしない場合がある。
例 C++の場合
int* hoge = 0;
Class *b = 0;
assert(hoge); // Cと同じ
assert(hoge != NULL); // Cと同じ
assert(b); // bool Class::operator bool() const が呼ばれ、その結果により判断される
assert(b != NULL); // bool Class::opeartor != (void *) const が呼ばれ、その結果により判断される。
C++の場合は、operatorの定義によって動作が決まり、定義がない場合はデフォルトの動作となる。
assertの場合は、assert(b)が正しい。クラスを定義するときに、ポインタの評価をデフォルトと変えたい場合は、operator boolをオーバーライドする。(例: boost::shared_ptrなど)
int a = hoge();