Код: Выделить всё
class Widget {
public:
std::chrono::milliseconds Foo();
};
Как я бы объявил переменную Blah , чтобы он получил виджет :: foo
Код: Выделить всё
std::chrono::millisecondsЯ нашел некоторые многообещающие рекомендации из сообщения в блоге, в котором используется result_of от вместе с Decltype , но я не могу заставить его работать.
Код: Выделить всё
auto fn = &Widget::Foo;
Widget w;
std::result_of::type blah;
< /code>
Этот подход имеет смысл для меня, но VC ++ 2013 это не нравится. < /p>
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xrefwrap(58): error C2064: term does not evaluate to a function taking 0 arguments
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xrefwrap(118) : see reference to class template instantiation 'std::_Result_of' being compiled
with
[
_Fty=std::chrono::milliseconds (__cdecl Widget::* )(void)
]
scratch.cpp(24) : see reference to class template instantiation 'std::result_of' being compiled
< /code>
Я не знаю, делаю ли я что -то не так или это то, что VC ++ еще не обрабатывает (или оба!). Единственная подсказка, которую я вижу в сообщении об ошибке, - это __cDecl Подробнее здесь: https://stackoverflow.com/questions/291 ... on-pointer
Мобильная версия