显式 int 类型作为参数

2024-03-16

是否可以将函数写为:

void func(uint64_t val) {template <typename T>

void call_with(std::function f, T val) { f(val); }

int main() { 自动打印 = [](int x) { std::cout

如果使用任何其他整数类型调用,则会生成编译时错误uint64_t,无需修改我的#pragma警告?

ie:

uint32_t x = 0;
func(x) {…} // Error!
func(uint64_t(x)) {…} // Succes!

使用函数模板重载该函数。函数模板将更好地匹配所有参数类型,除了uint64_t。您可以定义函数模板,这样在使用时就会产生错误。

void func(uint64_t val) { ... }

template <typename T>
void func(T)
{
    static_assert(false, "argument type is not uint64_t");
}

对于 C++11,您可以使用以下模板:

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

显式 int 类型作为参数 的相关文章

随机推荐

  • 当完整路径解析为 64 位目录时,无法从 32 位 C# 应用程序启动快捷方式 (lnk) 文件

    我正在尝试从 C 应用程序启动 开始 菜单中的程序 并且 开始 菜单中的几乎所有项目都是快捷方式 lnk 文件 当使用 Process Start 启动这些文件时 我发现如果 lnk 文件的完整路径指向 C Program Files 目录
  • 如何在python字典中为每个键添加多个值

    我的程序需要输出一个名称列表 每个名称对应三个数字 但是我不知道如何编码 有一种方法可以将其作为字典来实现 例如cat1 james 6 bob 3 但每个键有三个值 两个答案都很好 santosh ankr 使用列表字典 Jaco de
  • 如何使用 HTML CSS 禁用弹出式 Google 翻译

    我在我的网站中使用 Google Widget 进行翻译 但是 当我单击翻译时 它将在我的页面顶部显示弹出窗口 并在向下滚动时阻止我的菜单导航 我尝试过一些 css html 和 javascript 但无法修复 如何隐藏点击菜单导航时弹出
  • Array.prototype 与 [] perf

    我还没有真正有机会研究这个问题 在调用 应用类型的上下文中使用时 哪个性能更高 Array prototype vs e g function test1 return Array prototype splice apply argume
  • 如何将 Android 源附加到 Eclipse

    我之前已经按照 Finn Johnsen 的说明成功将 Android 源附加到 Eclipsehere http johnsenf blogspot com 2009 12 android sources and javadoc in e
  • Jquery查找具有特定数据属性的元素[重复]

    这个问题在这里已经有答案了 我可以使用什么函数来选择 class rate stars 的子 div 我有一个从 1 5 的变量范围 我想选择具有该特定数据评级的子 div 我努力了 rate widget find attr data r
  • 尝试通过方法“System.Web.Helpers.Json..cctor()”访问方法“System.Web.Helpers.Json.CreateSerializer()”失败

    我在用System Web Helpers Json将一些 JSON 反序列化为dynamic在 NET 4 中 以下行失败并出现此错误 TypeInitializationException Attempt by method Syste
  • 有时会话变量停止工作

    我已经经历过两次这样的事了 突然 我的登录系统停止工作 通过调试我发现 SESSION 变量在登录过程中无法生存 然后 在没有明显原因的情况下 它会恢复工作 这是流程 用户登录于index html 表单提交至login php login
  • 如何先保存粘贴板内容然后再恢复它们?

    我有一个不露面的 Mac OS X 应用程序 需要从其他应用程序复制选择 我通过模拟 CMD C 击键来实现这一点 它工作完美 但我认为有一个至关重要的副作用 它会在未经用户许可的情况下覆盖用户的粘贴板 所以我想在复制选择之前我应该 保存粘
  • 使用 nuget 包添加自定义构建步骤

    我正在开发一个 nuget 包 它将设置当前项目以使用我公司的程序集版本控制标准 除了添加自定义构建步骤之外 我已经让它顺利地完成了我想要的所有事情 到目前为止 从历史上看 这是通过直接编辑 csproj 文件并在 xml 中添加几个新标签
  • 在 Haskell 中获取列表最后一个元素的最快方法

    在 Haskell 中获取列表最后一个元素的最快方法是什么 同样在下一次迭代中 我想删除列表的第一个和最后一个元素 最优雅的方法是什么 我正在尝试列表理解 但这看起来不是很有效 您可以使用the last功能 http hackage ha
  • 为什么 Thread.Sleep() 在 SerialPort.Open 和 Close 之前?

    我注意到我在 SerialPort 关闭和打开时读到的示例代码 人们会在 SerialPort Open 和 Close 之前添加 Thread Sleep 1000 就像下面这样 Thread Sleep 1000 serialPort1
  • jqgrid更改列标题属性

    当我将鼠标悬停在特定单元格值上时 悬停值与单元格值相同 我可以更改与单元格值不同的悬停文本吗 Thanks 您可以在列的 colModel 中使用 cellattr 属性来设置自定义工具提示 例如 cellattr function ret
  • QMenu 中 QActions 的 QTooltip

    我希望能够显示工具提示QMenu items QActions 我取得的最好成绩是连接悬停信号QAction to a QTooltip show connect action QAction hovered QToolTip showTe
  • Nodejs Express fs 将文件迭代到数组或对象失败

    因此 我尝试使用 Nodejs Express FS 模块来迭代我的应用程序中的目录 将每个文件名存储在一个数组中 我可以将其传递到我的 Express 视图并迭代列表 但我很难做到这一点 当我在 files forEach 函数循环中执行
  • Sql Server Case 语句在用户定义函数中给出错误

    我想在用户定义的函数中使用 case 语句 因为我需要匹配多个术语 我可以使用表格进行匹配 但随后我无法将其放入计算列定义中 这适用于 IF 语句 CREATE FUNCTION MaraSizeNumber ms varchar RETU
  • 将 auto_ptr<> 与数组一起使用

    我在用着auto ptr lt gt 它使用类指针类型的数组 那么如何为其赋值 e g auto ptr
  • Rails ruby​​ - 未找到 cap 命令

    我正在尝试使用 Rubber 将示例应用程序部署到 Amazon EC2 我也在关注 Rubber 的 Railscasts 剧集 到目前为止 我已经安装了 gem 运行了 vulcaznize 命令 并对rubber yml 文件进行了修
  • 如何防止tinyMCE粘贴事件?

    如果编辑器当前内容的长度加上要粘贴的单词的长度超过指定的限制 我需要阻止tinyMCE的粘贴事件 我该怎么做 谢谢 我错了 我不需要阻止或禁用tinyMCE 中的粘贴来执行此操作 我用了他们的paste插件并在粘贴之前修改了内容 funct
  • 显式 int 类型作为参数

    是否可以将函数写为 void func uint64 t val template