9
我正在製作一個模板化類,它是任何迭代器的包裝器。我正在操作*這樣:Decltype函數返回
template <typename T>
class MyIterator {
public:
//...
decltype(*T()) operator*() {
//...
}
}
我給decltype一個調用到T級的運營商*,它甚至還可以,但是如果T可是沒有默認構造函數,它不會工作。
有無論如何找出返回的函數/方法的類型?
我的編譯器說「不能使用declval()」! –
你的編譯器說的是什麼(以及你使用的編譯器是什麼?)你不能_ODR-use_'declval',因爲它沒有被定義;您只能在未評估的環境中「使用」它,例如在'decltype'中。 –
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/type_traits:1134:7:error:static assertion失敗:「不能使用declval()!」 –