#include <iostream>
#include <boost/bind.hpp>
struct FCall3Templ {
template<typename ARG1, typename ARG2>
ARG1 operator()(ARG1 arg1, ARG2 arg2) {
return arg1+arg2;
}
};
int main() {
boost::bind<int>(FCall3Templ(), 45, 56)(); // call 1
boost::bind<double>(FCall3Templ(), 45.0, 56.0)(); // call 2
return 0;
}
ここにあるのと同じコードを投稿しています。
私はメタプログラミング、boost::bind、および演算子のオーバーロードに比較的慣れていませんが、コードの一部でこのコードが何をするのか理解できず、次の質問があります。
operator()
その演算子のラベルを指定せずに使用するのはなぜですか? オーバーロード/定義とは何ですか?- での割り当てを使用して、2 つの呼び出しによって返された値をキャッチして保存する方法を教えて
T var = ?
ください。 ()
両方の呼び出しで最後が空であるという事実はどういう意味ですか? オペレーターへの電話ですか?では、このテクニック/オペレーターの名前は何ですか?- メソッドだけを使用するのではなく、このようにオーバーロードする演算子を使用するのはなぜですか?
ありがとう。