这个很奇怪。以前我使用Qt 5.5和MinGW一起使用MinGW 4.9.2并且我成功地使用了remove_reference_t
typedef。现在我已升级到Qt 5.6,它也使用MinGW 4.9.2,但编译器抱怨没有remove_reference_t
。查看docs它清楚地表明这个typedef是可用的,因为C ++ 14和我在我的所有Qt * .pro文件中实际使用CONFIG += C++14
。现在我只是自己拼写了typedef,但它让我很困惑,它在以前的版本中工作,尽管它使用相同的编译器版本,它在新版本中不起作用。知道问题可能是什么吗?
澄清我如何使用它。这是我对previous questions之一的答案的解决方案:
#include <type_traits>
template<class T>
std::remove_reference_t<T> const& as_const(T&&t){return t;}