boost::phoenix::functionを使用すると、いくつかの問題が発生しました。私の知る限り、この遅延関数はテンプレート パラメーターとして functor を必要とします。ファンクター クラス/構造体を定義し、それをインスタンス化用のテンプレート パラメーターとして渡す必要があります。しかし、長すぎて冗長です。作成に他の呼び出し可能な型phoenix::function
(関数参照/ポインターなど) を使用できますか? 私が試したlambdas
:
const auto foo = [] { cout <<"Test"; }
const boost::phoenix::function<decltype(foo)> lazy;
しかし、呼び出しlazy()
はコンパイルされませんでした。phoenix::function
では、高速な 1 行作成のためのファンクター クラスの代わりになるものはありますか?