首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >推断if-constexpr中的类型信息

推断if-constexpr中的类型信息
EN

Stack Overflow用户
提问于 2022-11-03 03:21:49
回答 1查看 9关注 0票数 0

我想探讨一下if-的特性,并尝试在编译时找出类型信息。为此,我编写了以下代码。我预计printTypeInfo函数将返回4表示x,3.24返回y,但是,它给出了3.1和3.24。我不知道哪里出了问题。

我希望解密将推断类型为int,但似乎推断加倍。当我用以下代码替换解密类型时,它可以工作。在这里输入图像描述

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-03 03:31:57

示例中的decltype(value)始终是const T&,因为这是您的参数类型。引用不是整体的,所以您总是添加0.1。您可以使用std::remove_reference_t获取底层类型:

代码语言:javascript
复制
auto printTypeInfo(const auto& value) {
    if constexpr (std::is_integral_v<std::remove_reference_t<decltype(value)>>) {
        return v + 1;
    } else {
        return v + 0.1;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74297832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档