まじった

クラスなのにアクサンシルコンフレックス付けてないしnewのままでした.と思ったら,昨日までのC++/CLIではなく,今日はC#だったので正解でした.こんがらがるわ.以下の対応表を書き始めたらあれもこれもが始まって夜更かし突入で戻れなくなったので切り上げとく.

managedmanagedunmanaged
C#C++C++
class C{
 void f1(C c);
 static void f2(void);
 void f0(){
  C c;
  byte b;
  long l;
  int[] i;
  i = new int[9];
  c = new C();
  c.f1(c);
  c.Dispose();
  C.f2();
 }
}
ref class C{
 void f1(C^ c);
 static void f2(void);
 void f0(void){
  C ^c;
  unsigned char b;
  long long l;
  array<int>^ i;
  i = gcnew array<int>(9);
  c = gcnew C();
  c->f1(c);
  delete c;
  C::f2();
 }
};
class C{
 void f1(C* c);
 static void f2(void);
 void f0(void){
  C *c;
  unsigned char b;
  long long l;
  int i[9];
  c = new C();
  c->f1(c);
  delete c;
  C::f2();
 }
};

ちなみに,「アクサンシルコンフレックス」で合ってるよね?と思って調べたら,「サーカムフレックスアクセント」という方が主流っぽいです.また,同じ形でも「ハットマーク」と読んだら数学的冪乗,「ハット」と読んだら統計的推定値,「キャレット」と読んだら文字挿入位置を表すんだそうな.ぜひ覚えておきたい.