template<class T>
std::vector<T> convert(int argument)
{
}

int main()
{
  decltype(&convert<int>);
  return 0;
}

以下给出了针对Visual Studio 2010的错误:
error C3555: incorrect argument to 'decltype'

为什么?

我正在尝试创建一个std::map,其中的键是一个枚举,值是一个函数。

最佳答案

VS2010 bug。该链接也有一种解决方法:

template <typename T> T identity(T);
decltype(identity(&convert<int>));

关于c++ - 'decltype'的参数不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12404362/

10-13 08:28