我在實用程式庫中實作了以下功能:
template <auto Value>
bool equals_constant(const decltype(Value)& value) { return Value == value; }
它對于其他采用可呼叫謂詞的模板函式很有用,如下所示:
template <auto IsValid>
struct Validator {
bool validate(int value) { return IsValid(value); }
};
// this validator requires its value to equal 42 (just for demo purposes)
Validator<equals_constant<42>> validator;
std::cout << validator.validate(41) << std::endl; // 0
std::cout << validator.validate(42) << std::endl; // 1
我是否重新發明了輪子- 是否equals_constant()
已經在 STL 中?(如果是這樣,我在cppreference或 Google上找不到它。)謝謝。
uj5u.com熱心網友回復:
不。std
不是放置“任何模糊有用的東西”的地方。
boost::hana::equal.to
看起來很相似。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467036.html