ゆとりーなの日記

日記的な事を書いて行くと思はれる

変態的文法

C++函数ポインタを返す函数の宣言と定義をtypedef縛りでやってみたら予想通りグロかったのでメモしておきます。

void func(int) {}

void (*hoge ())(int);

void (*hoge ())(int) {
  return &func;
}

続いて函数ポインタを返すメンバ函数とついでにメンバ函数ポインタを返すメンバ関数です。constが付く位置が個人的にツボに入りました。

struct foo {
  void (*f ())(int);
  void (*f () const)(int);
  static void (*g ())(int);
  void h(int) {}
  void (foo::*i())(int);
};

void (*foo::f())(int) {
  return &func;
}

void (*foo::f() const)(int) {
  return &func;
}

void (*foo::g())(int) {
  return &func;
}

void (foo::*foo::i())(int) {
  return &foo::h;
}