boost-proto

    8

    1答えて

    私は定期的にboost.lambda(とphoenix)を使ってC++でラムダ関数を定義しています。多態性、その表現の簡潔さ、そしてC++での関数型プログラミングのやり方がずっと簡単なのは本当に好きです。場合によっては、小さな関数を定義したり、静的なスコープで名前を付けるためにそれらを使用するためには、よりクリーンで読みやすい(読み込みに慣れている)人もいます。ほとんどの従来の機能に似ているこれら

    10

    2答えて

    Boost.Protoでベクトル型と一致する文法を作ろうとしていますが、その型の端末に文法に合っていません。タイプ定義は次のようになります。マッチが失敗 namespace proto = boost::proto; using proto::_; using proto::N; struct test: proto::terminal<vector<_, N> > {};

    6

    2答えて

    Boost.Protoを使用して、埋め込みドメイン固有言語をEigenライブラリで実装された一連の行列演算に変換したいと考えています。効率が重要なので、私はprotoがEigenの式テンプレートを生成し、早期の評価を避けたい。 私は行列乗算式を生成することができる単純な文法を実装しました。以下のコードは、警告なしでコンパイルします(g ++ 4.8.0およびIntel C++ 2013.3、Boo

    5

    1答えて

    ブーストフェニックス式の変換に関数ボディを含めるにはどうすればよいですか?例えば、私はBoost Phoenix Starter Kitのレイジー機能部に を構築している、と怠惰な追加機能を作成しました: struct my_lazy_add_impl { typedef int result_type; template <typename T> T operato

    5

    1答えて

    背景の質問:boost.proto + detect invalid terminal before building the expression tree。私が達成しようとしているものを こんにちは、 は、すべてのベクトルが その開始反復子(私の場合には、生のポインタである) で置換されている式ツリーのコピーを作成していますイテレータを適切な位置にインクリメントしてください。 ツリー内の逆参照

    3

    1答えて

    ::プロトマニュアル、タイプSTDの端子に一致する文法の例があります:: <を変換...>: struct StdComplex : proto::terminal< std::complex<proto::_> > {}; 私はと何かをするという変革を書きたいですproto :: _の型。 たとえば、proto :: terminal < std :: complex < T>>

    5

    2答えて

    Boost Phoenix式をC++の代表的な文字列に変換できますか?私が持っている可能性があり:私は、この例では、いくつかの大まかなエッジを持って感謝しますが、これらの線に沿って何かが試みられている場合、私は疑問に思う template <class T1, class T2> struct foo { auto operator()(T1 x1, T2 x2) -> de