ゆとりーなの日記

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

期待したけど

VC++2010はラムダ式は使えるけどラムダ式から関数ポインタへの変換できないみたいです。できればこんなコードが書けるのではないかと期待したのに残念です。

class Window {
 public:
    Window() : window_handle_(initWindow()) {
        WNDPROC procedure([this](HWND window_handle, UINT message, WPARAM wp, LPARAM lp){return windowProcedure(window_handle, message, wp, lp);});
        SetWindowLong(window_handle_, GWL_WNDPROC, reinterpret_cast<LONG>(procedure));
    }
 private:
    virtual LRESULT windowProcedure(HWND window_handle, UINT message, WPARAM wp, LPARAM lp);
    static HWND initWindow();
    const HWND window_handle_;
};

そういえば呼び出し規約とかどうするんですかね。