为什么 MSVC++11 拒绝函数的 constexpr 限定?

2023-12-21

因此,在尝试使用 constexpr 时,MSVC (Visual Studio 2012) 在尝试使用以下命令限定我的函数时出现了错误constexpr使用这个简单程序的关键字(包括省略):

constexpr int factorial(int n)
{
    return n <= 1 ? 1 : (n * factorial(n-1));
}

int main(void)
{
    const int fact_three = factorial(3);
    std::cout << fact_three << std::endl;
    return 0;
}

constexpr带有红色下划线并带有以下消息:

错误:此声明没有存储类或类型说明符

并尝试编译该程序给出以下输出:

1>main.cpp(5): 错误 C2144: 语法错误: 'int' 前面应该有 ';'

1>main.cpp(5):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持default-int

这真的让我很困惑,因为这就是 Cppreference 的例子用于说明使用constexpr http://en.cppreference.com/w/cpp/language/constexpr。起初,我使用了一个返回文字的简单函数,即constexpr int func(){return 5;},但产生了相同的错误。我将第一条消息解释为“它应该是结构或类的成员函数”,但 Cppreference 中的示例表明它显然没有必要。

那么,我在这里明显缺少什么?


很简单 - 因为 Visual Studio 不支持constexpr(之前视觉工作室 2015 https://msdn.microsoft.com/en-us/library/dn956974.aspx).

请注意,MSVC++11 是 Visual Studio 2012; VC++10 是 Visual Studio 2010。

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

为什么 MSVC++11 拒绝函数的 constexpr 限定? 的相关文章

  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • Android 的 Webkit 组件

    除了标准 WebView 之外 Android 是否还有 Webkit 组件 类 我已经受够了它的超级非禁用选项 例如触摸时图像抖动等 我正在寻找一个足够容易嵌入到 hello world 应用程序中的组件 因为我是 Android 开发的
  • solana web3 verifyTransaction @deprecated 使用 TransactionConfirmationConfig 示例

    使用此代码 VS 显示不推荐使用的警告 方法 Connection confirmTransaction 策略 字符串 承诺 承诺 Promise 1 重载 deprecated 相反 使用 交易确认配置 签名 策略 字符串 承诺 承诺 P
  • 按星期几过滤

    我有一个列需要按星期几进行过滤 该列的格式为 00 00 yyyy 06 09 2017 现在我必须每周二进行过滤 我需要一种只能显示星期二数据的语法 我没有 isdate 列有的星期几列 00 00 0000 我正在使用 Oracle 和
  • VisualVM 无​​法在 Eclipse 上分析 Web 应用程序

    我想分析一下在 Tomcat 和 Eclipse 上运行的 Spring Web 应用程序 我将 VisualVM 添加到 Eclipse 中 并按照以下步骤运行应用程序进行分析 Right click on the application
  • jquery 动画滚动顶部回调

    我有以下 jquery 将页面滚动到顶部 然后执行回调函数 问题是 即使页面已经位于顶部 它仍然会等待 1000 过去后再执行回调 这是我不希望的 html animate scrollTop 0 1000 swing function d
  • ng-init json 对象

    我使用 angularjs ng init 我想将值赋给变量作为 jsonObj 我尝试了这个 但它不起作用 ng init percentObj value 40 color F5A623 value 60 color F5A623 还有
  • 在嵌套 for 循环内创建小部件

    我无法访问内部 for 循环中的外部 for 循环计数器 关于如何做到这一点有什么想法吗 class buildsubcategories extends StatelessWidget List
  • 配置:错误:在 Linux Ubuntu 上为 Android 编译 python 时,C 编译器无法创建可执行文件

    几天前我已经为 android 文件夹创建了 python 但忘记包含一些模块 所以我只是想再做一次 这是 distribute sh 的结果 Python build finished but the necessary bits to
  • 如何使用 script/rails 生成添加新操作和视图?

    有什么方法可以为现有控制器生成新的操作和视图 我尝试对现有控制器执行以下操作 script rails 生成控制器帖子视图 where view是我想添加到控制器的新操作 我知道用手做这件事很简单 但我想知道这是我不知道或我梦想太多的事情
  • SQL:检查一个数字是否在多个范围内

    假设我们有 2 张桌子 Table Values Id Group Value A X 15 B Y 55 Table Ranges Group LowLimit HighLimit X 0 10 X 20 30 Y 30 40 Y 50
  • UITextView 末尾的省略号

    如果我有多行不可滚动的 UITextView 其文本长度超出了可见区域的容纳范围 那么文本就会像这样被切断 Congress shall make no law respecting an establishment of religion
  • 理解 scipy 反卷积

    我试图理解scipy signal deconvolve https docs scipy org doc scipy 0 15 0 reference generated scipy signal deconvolve html 从数学的
  • 当用户移动时在 Android 谷歌地图中绘制折线

    嘿 我是 Android 新手 我已经了解了 android 谷歌地图 我想跟踪用户移动并在 android 谷歌地图中实时绘制折线路径 有人可以帮助我这个例子吗 我可以获得位置变化间隔 但仍然不知道如何将其应用到折线并将数据 LatLng
  • 将 SQLite 数据库从一个版本升级到另一版本?

    我收到错误Logcat说某个专栏 在我的SQLiteOpenHelper子类 不存在 我以为我可以通过更改来升级数据库DATABASE CREATE细绳 但显然不是 那么我如何 逐步 将我的 SQLite 数据库从版本 1 升级到版本 2
  • 如何将 Interface Builder 与 Swift 结合使用?

    将 Swift 代码连接到 Storyboard 时 如何添加IBAction and IBOutlet tags Add IBAction and IBOutlet变量和函数的属性 以便它们在界面生成器中可见 class ViewCont
  • 如何在tensorflow中将float32 tiff图像解码为float32张量?

    我有一组采用 tif 格式的 float32 数据类型的输入图像 rgb 和图像目标 灰度 是否可以在tensorflow中将它们解码为float32张量 在写这篇评论时tfio experimental image decode tiff
  • 如何实现空格键的actionListener作为动作事件

    我将其设置为在计时器上不断更新 但我希望能够使用空格键暂停计时器 我尝试实现一个 actionListener 但我不确定将其应用于什么 我能找到的大多数示例都与按钮或文本框相关 而不是 jpanel 内的键盘按下 我已将 src 打印到控
  • 多个 Vue 应用程序,在 monorepo 中共享组件

    我们的系统有两种关键用户类型 我们希望将应用程序分解到单个存储库中的两个单独的文件夹中 那么我们的想法是拥有一个两个项目都可以使用的共享组件库 我正在寻找有关如何实现此类设置的最佳实践的一些指导 理想情况下我们可以满足以下条件 每个应用程序
  • 由于存在已知用于跨站脚本攻击的字符,因此禁止访问

    谁能告诉我以下 HTTP 错误消息来自哪里 由于存在已知用于跨站点脚本攻击的字符 因此禁止访问 此网站不允许 URL 中可能包含嵌入的 HTML 标记 我们使用动态生成的 URL 在这种特定情况下 URL 包含字符 我们对生成的 URL 进
  • 为什么 MSVC++11 拒绝函数的 constexpr 限定?

    因此 在尝试使用 constexpr 时 MSVC Visual Studio 2012 在尝试使用以下命令限定我的函数时出现了错误constexpr使用这个简单程序的关键字 包括省略 constexpr int factorial int