9 年前(C 11)有一個類似的問題 ,也許較新的標準提供了這個。
我想確保我正在撰寫的模板化類只有在使用的型別實作某些運算子時才能實體化,例如<.
template <typename T>
class XX {
private:
T foo;
public:
bool continiumTransfunctioneer(const T zoo){return zoo < foo;}
// ...
};
我知道如果不滿足該要求,代碼將無法編譯,但來自編譯器的訊息可能非常冗長 - 我希望能夠預先警告用戶。
uj5u.com熱心網友回復:
這是使用C 20 概念的一個很好的用例:
template <typename T>
requires requires (const T& x, const T& y) { x < y; }
class XX {
private:
T foo;
public:
bool continiumTransfunctioneer(const T& zoo) const { return zoo < foo; }
};
演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/380302.html
