有沒有辦法擁有一個具有模板引數的概念函式簽名?
像這樣的東西:
template<typename SomeTypeT, typename U>
concept SomeType = requires(SomeTypeT s) {
{ s.SomeFunction<U>() };
};
?
uj5u.com熱心網友回復:
顯示的概念定義有效,除了您需要告訴編譯器這SomeFunction是一個模板:
template<typename SomeTypeT, typename U>
concept SomeType = requires(SomeTypeT s) {
{ s.template SomeFunction<U>() };
};
如果您想在模板定義中參考從屬名稱的模板成員,這始終是必要的,而不是特定于概念。在決議定義時,編譯器還不知道型別s是什么,因此不知道它SomeFunction應該是一個模板。但它需要知道,因為尖括號的含義和整個運算式可以依賴于它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/405355.html
標籤:
