gpt4 book ai didi

c++ - Qt 不使用 C++14 标准库

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:12:18 24 4
gpt4 key购买 nike

最近,通过查看 std::move 的源代码,我发现 Qt 将我的程序链接到不支持 C++11/14 功能的标准库版本:

#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES

template <class _Tp>
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
typename remove_reference<_Tp>::type&&
move(_Tp&& __t) _NOEXCEPT
{
typedef typename remove_reference<_Tp>::type _Up;
return static_cast<_Up&&>(__t);
}

#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES

template <class _Tp>
inline _LIBCPP_INLINE_VISIBILITY
_Tp&
move(_Tp& __t)
{
return __t;
}

template <class _Tp>
inline _LIBCPP_INLINE_VISIBILITY
const _Tp&
move(const _Tp& __t)
{
return __t;
}

#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES

实际上,定义了宏_LIBCPP_HAS_NO_RVALUE_REFERENCES(我在我的.pro文件中使用CONFIG += C++14,但这是图书馆的问题)。

我是否必须重建 libc++ 才能在 Qt 中使用 C++ 功能(如正确的 std::move)?还是我必须更改一些设置?

我将 Qt 5.7 与 LLVM 7.3.0 结合使用。

最佳答案

Qt 使用您的 LLVM 的任何标准库默认使用。这个问题与 Qt 无关,你用 LLVM 编译的任何东西都会遇到同样的问题。很可能你的 LLVM 安装失败了。

关于c++ - Qt 不使用 C++14 标准库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39168728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com