类似于 std::integral_constant 但在 std C++20 库中具有自动模板参数?

2024-04-12

从C++20开始可以使用auto实现积分常量的模板参数:

在线尝试一下! https://godbolt.org/z/3dfq7bbP1

template <auto Value>
struct integral_constant2
    : std::integral_constant<decltype(Value), Value> {};

可以使用它来代替更详细的变体std::积分常量 https://en.cppreference.com/w/cpp/types/integral_constant有两个模板参数。

当然更容易写f(std::integral_constant2<123>{});而不是更冗长f(std::integral_constant<int, 123>{});。更重要的是,如果您有复杂的编译时表达式,您可能无法提前知道类型。

我的问题是 C++20 std 库中是否存在类似的东西integral_constant2上面提到的,不是要重新发明轮子吗?或者至少有一些标准constexpr功能std::make_integral_constant(123)从而推断出std::integral_constant的模板参数?


不,我不知道有这样的替代。

我相信,考虑到编写自己的提案是多么容易,捍卫这样的提案是很困难的。另一方面,唯一的原因可能是还没有人提出。


主要是出于好奇,并扩展评论,您可以通过以下方式更进一步:

#include <type_traits>

template <auto Value, template<typename A, A> typename C>
using automized = C< decltype(Value),Value>;

template <auto Value>
using integral_constant = automized<Value,std::integral_constant>;

int main() {
    struct S {};
    integral_constant<true> c0{};
    integral_constant<10> c1{};
    integral_constant<S{}> c2{};
}

automized将允许转发auto任何模板的参数typename T, T value。然而,它相当有限,因为它仅适用于完全采用这些参数的模板,而当类型和非类型参数可以混合时,正确处理一般情况是相当痛苦的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类似于 std::integral_constant 但在 std C++20 库中具有自动模板参数? 的相关文章

随机推荐

  • R knit Markdown:For 循环内的输出图

    我想创建一个自动针织报告 它将为我的数据框中的每个数字字段生成直方图 我的目标是在无需指定实际字段的情况下完成此操作 此数据集包含超过 70 个字段 我还想重用该脚本 我尝试了几种不同的方法 saving the plot to an ob
  • 我可以将虚拟机放入可用性集之外的另一个资源组吗?

    我希望将每个虚拟机保留在单独的资源组中 以便于生命周期管理 我有一个包含 n 个 VLM 的集群 因此 我为公共 IP 负载均衡器等常见事物创建一个资源组 并将可用性集声明放入其中 因为它也必须在虚拟机之间共享 然后我在单独的资源组中创建虚
  • Perl 代码中的错误:无法找到模块 XML::LibXSLT 的可加载对象 [重复]

    这个问题在这里已经有答案了 Environment CentOS 5 Application Perl 5 8 8 Apache 错误说 Error in Perl code Can t locate loadable object for
  • Spring Boot Maven - 包含本机库

    在我的项目中我正在使用Sigar需要一些本机库的库 我想将所有文件 ddl so 等 特定于平台的 包含在 JAR 内或运行 jar 的同一目录中 Sigar在 java library 路径中搜索这个库 但我无法将它们全部包含在系统中PA
  • 如何向 JCarousel 添加描述

    我在用jcarousel 我无法为滑块中的照片添加描述 div ul class jcarousel skin tango li img src images about img1 jpg li ul div 您可以在 jCarousel
  • 是什么导致 MSSQL 中出现“非阻塞套接字上的操作将阻塞”错误?

    错误 异常查询为 CREATE NONCLUSTERED INDEX I1 ON AllAccounts BAK Master received Day ASC 出现异常 发生一个或多个错误 错误 异常内部异常无法从传输连接读取数据 非阻塞
  • 使用函数 gethostbyname 编译 C 到静态链接错误

    我正在尝试使用函数编译程序gethostbyname 使用交叉编译器arm none linux gnueabi 但是当我在 android 上运行我的二进制文件时它不起作用 我的代码如下 gethostbyname example c i
  • 黄瓜无头 xvfb ubuntu

    我正在尝试在 Amazon EC2 上设置 Jenkins 构建服务器 我计划在无头模式下运行我的黄瓜测试套件 我成功地在 IRB 中无头运行 require watir webdriver require headless headles
  • 科特林。基本 JavaFX 应用程序

    尝试了 Kotlin lang 我的印象是它与 Java 兼容 因此与 JavaFX 兼容 我尝试了以下操作 public object TestKt Application public override fun start stage
  • 在 CocoaPods 1.5 中使用静态库,导入时没有这样的模块

    随着 CocoaPods 1 5 的发布 我试图将项目中的 10 15 个动态 pod 迁移到将它们作为静态库 目的是加快我的应用程序启动时间 在这个阶段 我的简单 即简单化 尝试是在运行 pod install 时删除 use frame
  • Apache Spark SQL 按范围对数据进行分组

    我有一个表包含 年龄 列 我想根据年龄将人们分为几组 例如 0 5 5 10 10 15 然后我会对每组进行相同的计算并比较结果 这样做的目的是看看年龄是否与其他变量相关 请帮忙 你可以用这个公式来计算年龄range start age a
  • 如何检查pdf页面是否有书签?

    我正在尝试检查 pdf 文件中的页面是否有书签以及该书签中的内容 我正在使用 iTextSharp text pdf 来阅读和操作 pdf 但我找不到方法检查页面是否有书签 请帮忙 谢谢 我尝试获取书签 但它获取了所有集合 但我不知道如何获
  • 监控Windows共享

    我正在尝试使用 C 监视与 Windows 共享的连接 我非常确定这是可能的 因为您可以从 Windows 控制台管理器看到连接到您的人员 虽然我不介意使用 WMI 的解决方案 但我更喜欢一些替代方法 我所说的连接是指有人在受监控的电脑上打
  • 如何使用纯 javascript 获取 DIV 内的所有 id

    我想立即获取 Div 内每个元素的每个 ID 并更改它们的所有类名 喜欢 div div div div div div div div div div 我见过使用库的解决方案 但这可以用纯 Javascript 实现吗
  • 在ASP.NET中的子控件中创建ASP.NET ReportViewer;文档结构图按钮中断

    我们在使用 Visual Studio 2008 ReportViewer 控件时遇到了一个奇怪的问题 具体来说 当我们在页面上有一个子控件 并且子控件本身承载一个报表查看器 并且该报表具有文档结构图时 显示 隐藏文档结构图按钮上的回发似乎
  • 如何使用 jQuery 将 div css 的可见性更改为可见

    我的屏幕上有 下一个 和 上一个 按钮 当页面最初加载时 我希望隐藏 上一个 按钮 并且一旦用户单击 下一个 按钮 我希望 上一个 按钮 div 标签可见 我有一个用于 上一个 按钮的 CSS 属性 我将其可见性值设置为 False 还有一
  • .htaccess mod 重写规则和与号

    我已经为此苦苦挣扎了两天 目前我有以下重写规则 RewriteRule index php u 1 NC L 它将 example com 后面的所有内容作为 GET 变量 u 移植到 index php 它正在index php中进行处理
  • XOR 加密有什么问题?

    我编写了一个简短的 C 程序来对文件进行 XOR 加密 我可以将其用于一些个人文件 如果它被破解 那没什么大不了的 我只是防止临时查看者 基本上 我采用 ASCII 密码并重复将密码与文件中的数据进行异或 但现在我很好奇 如果有人想破解这个
  • Spring Boot - 无法启动嵌入式 tomcat 错误

    pom xml
  • 类似于 std::integral_constant 但在 std C++20 库中具有自动模板参数?

    从C 20开始可以使用auto实现积分常量的模板参数 在线尝试一下 https godbolt org z 3dfq7bbP1 template