Decltype за возврат функции

Я создаю шаблонный класс, который является оболочкой любого итератора. Я делаю оператор * следующим образом:

template <typename T>
class MyIterator {
public:
    //...
    decltype(*T()) operator*() {
    //...
    }
}

Я передаю decltype вызову оператора * класса T, и он даже работает, но если у T нет конструктора по умолчанию, он не будет работать.

Есть ли способ узнать, какой возвращаемый тип функции / метода?

9
задан James McNellis 29 September 2012 в 03:14
поделиться