問題タブ [function-object]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 関数オブジェクトはオーバーロードの解決にどのように影響しますか?
関数オブジェクトは、オーバーロードの解決中に通常の関数とは異なる方法で処理されますか? もしそうなら、どのように?
関数を同等に呼び出し可能な関数オブジェクトに置き換えると、コードの意味が変わる次のケースに遭遇しました。
ここでの出力は「N::bar」です。これまでのところ、N::bar は ADL によって検出されており、N::bar とグローバル バーの両方が完全に一致しており、N::bar はテンプレートではないため優先されています。
しかし、グローバル バーを関数オブジェクトに変更すると、次のようになります。
出力は「グローバル バー」になりました。違いはなぜですか?
c++ - 関数オブジェクトのシリアル化
std::function
C ++で一般的に、、関数オブジェクト、またはクロージャをシリアル化および逆シリアル化することは可能ですか?どのように?C ++ 11はこれを容易にしますか?そのようなタスクに利用できるライブラリサポートはありますか(たとえば、Boostで)?
たとえば、C ++プログラムにstd::function
、別のマシンにある別のC ++プログラムに(たとえばTCP / IPソケットを介して)通信する必要があるがあるとします。そのようなシナリオで何を提案しますか?
編集:
明確にするために、移動される関数は純粋で副作用のないものであると想定されています。したがって、セキュリティや状態の不一致の問題はありません。
この問題の解決策は、小さな組み込みドメイン固有言語を構築し、その抽象構文ツリーをシリアル化することです。代わりに、マシンに依存しない関数の表現を移動するための言語/ライブラリのサポートが見つかることを期待していました。
c++ - 一時関数オブジェクトの呼び出しにおけるあいまいさの解析
以下のコードでは、コンストラクター引数と関数呼び出し演算子引数の両方を使用した一時関数オブジェクトの呼び出しは、最も厄介な解析の問題のために、どういうわけかあいまいであると思われます。
Ideoneに出力します。
のように括弧を追加すると問題は解決しますが、宣言として解析(Fun(a))(b)
する方法がよくわかりません。Fun(a)(b)
Fun a
casting - TypeScriptのプロパティを使用して関数オブジェクトを作成します
いくつかのプロパティも保持されている関数オブジェクトを作成したいと思います。たとえば、JavaScriptでは次のようにします。
TypeScriptでは、このタイプを次のように説明できます。
しかし、キャストを必要とせずに実際に構築することはできません。そのような:
キャストなしでこれをどのように構築しますか?
c++ - C++ std:sort() 異なる基準を使用
私はたくさん検索しましたが、これがクエリが繰り返されているかどうかはわかりませんが、これをstd::vector
参照として使用して、次のタイプのデータを取る私のソートを作成しました。
基準ごとに個別の関数オブジェクトを作成できました。size
ただし、私のプロジェクトの要件では、 、 、に従ってソートするためのすべての関数オブジェクトを含めるには、クラスまたは構造体が 1 回だけ必要であるtype
と述べていますid
。すべての関数オブジェクトをstd::sort
1 つのクラスに含めることは可能ですか?
私は次のようなことを意味します
要件を満たすためにも調べましbinary_functions
たが、単一のクラスで複数の関数オブジェクトを宣言すると、エラーが発生しました。
std::sort
さらに、(さらに言えば、比較を含む STL アルゴリズム) の関数オブジェクトが必要であるbool operator()
か、またはそれらが通常の関数を返す必要がありbool
ますか?
c++ - 構造体 (またはクラス) の内部関数をファンクターとして渡す
struct 内の関数をファンクターとして渡すにはどうすればよいですか? 私はこれがうまくいくはずだと思っていましたが、うまくいきませんでした:
取得する<unresolved overloaded function type>
c++ - 関数オブジェクトのセキュリティ リスク
私は C++11 に関する記事を読んでいましたが、著者は、ラムダを使用する利点の 1 つは、関数オブジェクトの退屈さとセキュリティ リスクを回避することであると述べました。
FO のセキュリティ リスクにはどのようなものがありますか?
c++ - APIが関数ポインタを要求するときに関数オブジェクトを使用する
C++からCAPIを呼び出したい。APIは関数ポインターを想定していますが、私にとっては、状態があるため、機能はC++関数オブジェクトに実装されています。
実際、必要な機能は2つの関数オブジェクトに分割されます。C apiは、各関数オブジェクトが返す2つのものを返すための2つのポインターパラメーターを持つ関数を想定しています。
グローバル関数を定義する以外に、Cの関数オブジェクトを使用する方法はありますか。たとえば、関数ポインターに再解釈できますか?
編集:
簡単にするために、コールバックの署名が無効であると想定してもかまいません(*f)(void*, int*, int*)
ああ、それはC++-03でなければなりません
javascript - javascript拡張プロトタイプとチェーン
プロパティまたは関数を既存の関数オブジェクトのプロトタイプに追加すると、そのプロパティまたは関数がオブジェクトに属していると認識されない理由がわかりません。
例:
ありがとうございました
haskell - Function objects in Haskell compile error
I'm trying to create a class Func
which represents a function, and then a data type Dot
which composes functions. Below is my attempt, but I'm getting compile errors:
I get the following errors:
What do I need to fix to make this compile?
I realise this might seem a bit silly, but I thought it might be useful to be able to carry around different functions as unique types, as one could perhaps attach various metadata to those types (I'm not sure exactly what yet).