gpt4 book ai didi

c++ - 通过 constexpr 获取默认值

转载 作者:太空狗 更新时间:2023-10-29 21:34:01 26 4
gpt4 key购买 nike

考虑以下代码:

template<typename T>
constexpr T getDefault()
{
if constexpr (std::is_same_v<T, CString>)
{
return "";
}
}

template<typename T>
struct getdef
{
static constexpr T value = getDefault<T>();
};

现在我想获取 CString 的默认值...CString 是来自 MFC 的类。

CString s2 = getDefault<CString>();
CString s = getdef<CString>::value;

使用 getDefault 的第一行编译正确,但第二行发出错误。

Error C2127 'value': illegal initialization of 'constexpr' entity with a non-constant expression

我在这里做错了什么?

最佳答案

CString 没有 constexpr 构造函数,因此,它不能用于初始化 constexpr 对象。

关于c++ - 通过 constexpr 获取默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48519951/

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