ここでは、より一般的な質問があります。これはその延長と考えてください。
クラスはオブジェクトのタイプを表し、名前として名詞を使用する必要があることを理解しています。しかし、多くの言語でサポートされている、オブジェクトというよりも関数のように振る舞う関数オブジェクトがあります。これらのクラスにも名詞として名前を付ける必要がありますか、その場合は動詞でかまいません。doSomething()
、意味的には、 よりも理にかなっていSomething()
ます。
更新/結論
これについて私が得た上位2つの回答は、さまざまな意見を共有しています。
アッティラ
ただし、ファンクターの場合、それらは「アクション」を表すため、動詞 (または何らかの名詞と動詞の組み合わせ) を使用して名前を付ける方が適切です。関数の動作に基づいて名前を付けるのと同じです。
ルーク
一方、ファンクターのインスタンスは事実上関数であり、それに応じて名前を付けたほうがよいでしょう。上記のジムの提案に従って、
SomethingDoer doSomething; doSomething();
いくつかのコードを実行した後、どちらも一般的な方法のようです。stl の GNU 実装で、、、(bits/stl_function.h) などのクラスを見つけましたnegate
。plus
そしてminus
、variate_generator
( mersenne_twister
tr1/random.h)。同様に、boostbase_visitor
では、predecessor_recorder
(graph/visitors.hpp)inverse
やinplace_erase
(icl/functors.hpp)のようなクラスを見つけました。