Вот мой код:
Как использовать decltype в этом случае
class Test
{
private:
SomeType a;
public:
using TE = decltype(a.find("abc")->second);
TE getElement(const string &) const;
};
Test::TE Test::getElement(const string & key) const
{
return a.find(key)->second;
}
В классе, функция может возвращать элемент a
, как и выше. Тип a.find(key)->second
очень сложный, поэтому я не хочу вводить его все. На самом деле, я даже не знаю, как его напечатать ...
Так что я хочу использовать decltype
, как указано выше, но не удалось. Здесь ошибка:
error C2227: left of '->second' must point to class/struct/union/generic type
_How_ это не получилось? Измените точное сообщение об ошибке в вопросе. –
Работает для меня после устранения очевидных проблем: http://coliru.stacked-crooked.com/a/b2b40702ad2c93cb – Petr
@OpenKastle сделано. – Yves