GentooでArduino IDEを落としてきて使おうと思ったら
avrdude:error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory
とか出てきてArduinoに書き込めなかったので
emerge avrdude
してやって
ln -s /usr/bin/avrdude arduino-1.0.5/hardware/tools/avrdude
ln -s /usr/bin/avrdude arduino-1.0.5/hardware/tools/avrdude64
でシンボリックリンク貼ってやったら動いた
2014年9月3日水曜日
2014年5月20日火曜日
C++14のconstexprとsproutでBrainfuck
書いた
https://github.com/otakuto/constexpr_brainfuck
こんなに複雑だったのにC++14は偉大やな
constexpr で Brainfuck - C++でゲームプログラミング
http://d.hatena.ne.jp/osyo-manga/20120424/1335193680
https://github.com/otakuto/constexpr_brainfuck
こんなに複雑だったのにC++14は偉大やな
constexpr で Brainfuck - C++でゲームプログラミング
http://d.hatena.ne.jp/osyo-manga/20120424/1335193680
2014年3月8日土曜日
C#でのreadonlyの罠
C#での定数はconst定数とreadonly定数の2種類がある。
const定数では参照型を代入することができないがreadonly定数ではできる。
またconst定数はリテラルとして扱われるが、readonly定数は普通の変数として扱われる。
readonly定数は完全にconstantな訳でなく、フィールドやプロパティの
書き換えは行えてしまう。
class A
{
public int a;
public int b
{
get;
set;
}
}
class B
{
public static readonly A a = new A();
public void test()
{
//コンパイルエラーにならない
a.a = 3;
a.b = 4;
}
}
C++は比較的まともなconstオブジェクトを作れるので、その点ではC#より優れていると言える。
またreadonly定数は普通の変数として扱われる。そのためランタイムに初期化を行うので、readonly定数の初期化に初期化されていないreadonly定数を使うとバグが発生する。
class A
{
//Cが初期化される前にBが初期化されてしまうためにBが3になる
public static readonly int B = C + 3;
public static readonly int C = 4;
}
C#erには常識かもしれないがC#初心者の私は引っかかってしまった。
const定数では参照型を代入することができないがreadonly定数ではできる。
またconst定数はリテラルとして扱われるが、readonly定数は普通の変数として扱われる。
readonly定数は完全にconstantな訳でなく、フィールドやプロパティの
書き換えは行えてしまう。
class A
{
public int a;
public int b
{
get;
set;
}
}
class B
{
public static readonly A a = new A();
public void test()
{
//コンパイルエラーにならない
a.a = 3;
a.b = 4;
}
}
C++は比較的まともなconstオブジェクトを作れるので、その点ではC#より優れていると言える。
またreadonly定数は普通の変数として扱われる。そのためランタイムに初期化を行うので、readonly定数の初期化に初期化されていないreadonly定数を使うとバグが発生する。
class A
{
//Cが初期化される前にBが初期化されてしまうためにBが3になる
public static readonly int B = C + 3;
public static readonly int C = 4;
}
C#erには常識かもしれないがC#初心者の私は引っかかってしまった。
登録:
投稿 (Atom)