我正在制作一个模板类,它是任何迭代器的包装器。我将通过以下方式实现operator*:
template <typename T>
class MyIterator {
public:
//...
decltype(*T()) operator*() {
//...
}
}
我给类T的operator*函数传递了一个decltype调用,它甚至能够工作,但是如果T没有默认构造函数,则无法正常工作。
有没有办法找出函数/方法的返回类型?
declval
,因为它没有被定义;你只能在不会被求值的上下文中使用它,例如在decltype
中。 - James McNellis