this exampleを動機とするstd::less/std::greater
を使用しています。 std::min
またはstd::max
をテンプレート比較器として使用できますか?std :: min/std :: maxをテンプレートコンパレータとして使用
次の例では、エラーをスロー:
error: type/value mismatch at argument 1 in template parameter list for 'template<class C> class Test'
#include <functional>
#include <algorithm>
template <typename C>
class Test
{
public:
int compare(int x, int y)
{
return C()(x, y);
}
};
int main() {
Test<std::min<int>> foo;
Test<std::max<int>> bar;
foo.compare(1, 2);
bar.compare(1, 2);
}
std::min<int>
これは2つのテンプレートパラメータ' template? ' –
pyCthon
@pyCthonはい、できます。そしてそれらを 'Test> foo;'として使ってください。 –
songyuanyao