C++ 错误:没有调用“print_size”的匹配函数

2024-04-19

我有这个代码:

#include <iostream>
#include <vector>

template<typename T>
void print_size(std::vector<T> a)
{
    std::cout << a.size() << '\n';
}

int main()
{
    std::vector<int> v {1, 2, 3};
    print_size(v);

    auto w = {1, 2, 3};
    // print_size(w); // error: no matching function for call to 'print_size'
                      // candidate template ignored: could not match 'vector' against 'initializer_list'
}

...编译和运行没有任何问题。但是如果我启用注释掉的行,它会产生错误no matching function for call to 'print_size'.

我想知道在 C++11 及更高版本中编写此代码的正确方法是什么。


For auto w = {1, 2, 3};的类型wstd::initializer_list<int>, and print_size(w);失败,因为模板参数T无法推论;模板实参推导 http://en.cppreference.com/w/cpp/language/template_argument_deduction#Implicit_conversions不考虑隐式转换。

类型推导不考虑隐式转换(除了上面列出的类型调整之外):这是重载解析的工作,稍后发生。

您可以显式指定模板参数,

print_size<int>(w);

或者你可以做w成为一个std::vector<int>反而;如果你坚持使用auto您需要明确指定类型。

auto w = std::vector<int>{1, 2, 3};
print_size(w);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 错误:没有调用“print_size”的匹配函数 的相关文章

  • JSON.Net 反序列化返回“null”

    我正在使用 JSON Net 反序列化 JSON 字符串 JSON 字符串是 string testJson Fruits Apple color red size round Orange Pro
  • c# 从另一个类中的另一个静态事件引发事件

    需要帮助从另一个班级调用事件 我有已声明事件的课程 public class MxPBaseGridView GridView public event AddNewItemsToPopUpMenuEventHandler AddNewIt
  • XPATH 查询、HtmlAgilityPack 和提取文本

    我一直在尝试从名为 tim new 的类中提取链接 我也得到了解决方案 给出了解决方案 片段和必要的信息here https stackoverflow com questions 2982862 extracting a table ro
  • C# 处理标准输入

    我目前正在尝试通过命令行断开与网络文件夹的连接 并使用以下代码 System Diagnostics Process process2 new System Diagnostics Process System Diagnostics Pr
  • C 中“complex”的默认类型

    根据我读过的文档 C99 和更高版本的支持float complex double complex and long double complex作为复杂类型 但是 此代码在使用时编译时不会发出警告gcc Wall Wextra inclu
  • 全局使用和 .NET Standard 2.0

    我最近意识到我可以使用 C 10 功能文件范围的命名空间在 NET Standard 2 0 项目中也可以通过设置
  • 带有运算符语法的错误消息,但不带有函数语法的错误消息

    为什么我在调用 unary 时收到错误消息 使用运算符语法 如果我用函数语法调用它就可以了 现场演示 https godbolt org z j7AbeQ template
  • while循环中的变量初始化

    我有一个可以分块读取文件的函数 public static DataObject ReadNextFile 数据对象看起来像这样 public DataObject public string Category get set And ot
  • 为什么需要数字后缀?

    C 语言 我确信还有其他语言 需要在数字文字末尾添加后缀 这些后缀指示文字的类型 例如 5m是一个小数 5f是一个浮点数 我的问题是 这些后缀真的有必要吗 或者是否可以从上下文中推断出文字的类型 例如 代码decimal d 5 0应该推断
  • 在 C# 中何时使用 ArrayList 而不是 array[]?

    我经常使用一个ArrayList而不是 正常 array 当我使用时 我感觉好像我在作弊 或懒惰 ArrayList 什么时候可以使用ArrayList在数组上 数组是强类型的 并且可以很好地用作参数 如果您知道集合的长度并且它是固定的 则
  • 你好,我最近正在开发我的新游戏,我遇到了*无限跳跃*的问题

    所以基本上当我按跳跃 空格键时我会跳跃但是如果我连续按空格键它 只是跳啊跳啊跳等等 我不想要我只想它跳一次 code if Input GetKeyDown space isGrounded velocity y Mathf Sqrt ju
  • 使用 C# 中的 Google 地图 API 和 SSIS 包获取行驶距离

    更新 找到了谷歌距离矩阵并尝试相应地修改我的代码 我在这里收到无效参数错误 return new GeoLocation dstnc uri ToString catch return new GeoLocation 0 0 https 基
  • Xamarin - SignalR 挂在连接上

    我正在尝试将我的 Xamarin 应用程序连接到托管在 Azure 上的 SignalR 后端 我遇到的问题是每次我在 HubConnection 上调用 StartAsync 时 它都会挂起客户端并且请求永远不会完成 我尝试通过应用程序进
  • Resharper:IEnumerable 的可能多重枚举

    我正在使用新的 Resharper 版本 6 在我的代码中的几个地方 它给一些文本加了下划线 并警告我可能存在IEnumerable 可能的多重枚举 我理解这意味着什么 并在适当的情况下采纳了建议 但在某些情况下 我不确定这实际上是一个大问
  • 为什么 f(i = -1, i = -1) 是未定义的行为?

    我正在读关于违反评估顺序 http en cppreference com w cpp language eval order 他们举了一个令我困惑的例子 1 如果标量对象上的副作用相对于同一标量对象上的另一个副作用是无序的 则行为未定义
  • 如何在dll级别读取app.config? [复制]

    这个问题在这里已经有答案了 我在一个解决方案中有一个控制台应用程序项目和库项目 dll The 图书馆项目有 app config 文件 我在其中存储我在库中使用的一些键值对 控制台应用程序引用此 dll 我有另一个 app config
  • Autoconf 问题:“错误:C 编译器无法创建可执行文件”

    我正在尝试使用 GNU 自动工具构建一个用 C 编写的程序 但显然我设置错误 因为当configure运行 它吐出 configure error C compiler cannot create executables 如果我看进去con
  • printf或iostream如何指定点后的最大位数

    字符串采用什么格式printf or iomanip我应该使用 iostream 中的运算符以以下格式打印浮点数 125 0 gt 125 125 1 gt 125 1 125 12312 gt 125 12 1 12345 gt 1 12
  • 将 char 绑定到枚举类型

    我有一段与此非常相似的代码 class someclass public enum Section START MID END vector section Full void ex for int i 0 i section
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可

随机推荐

  • 检测类属性值更改,然后更改另一个类属性

    假设我有一个名为 Number 的类 class Number def init self n self n n self changed None a Number 8 print a n prints 8 a n 9 print a n
  • 用面向对象的方法设置标签元素的属性

    标签有一个 for 属性 使它们指向某个输入字段 我需要使用 JQuery 更改此属性的值 以便我可以使用 label attr for targetName 但我还需要设置 className 所以我更喜欢使用 label attr fo
  • 当给定距起点的距离时,找到贝塞尔曲线上的点?

    我创建了一条 4 点贝塞尔曲线和一个距离 从起点开始 如何找到距起点一定距离的点的 x y 坐标 我查看了其他示例 据我所知 他们通过将曲线划分为几千个点 然后找到最近的点来近似值 这对我不起作用 对于我正在做的事情 我希望精确到小数点后两
  • 使用 Python 移动特定文件类型

    我知道这对你们中的许多人来说会非常容易 我刚刚开始学习 Python 需要一些基本文件处理方面的帮助 我拍摄了很多屏幕截图 最终出现在我的桌面上 因为这是默认设置 我知道我可以更改屏幕截图设置以自动将其保存在其他位置 不过 我认为这个程序将
  • 如何在多个 Gradle 项目之间共享样板 Kotlin 配置?

    The 典型的 Kotlin 配置 https kotlinlang org docs reference using gradle htmlGradle 项目中的代码非常样板 我正在寻找一种将其抽象为外部构建脚本的方法 以便可以重用它 我
  • Scala for 循环内的赋值

    这段代码有什么区别吗 for term lt term array val list hashmap get term and for term lt term array val list hashmap get term 在循环内部我正
  • 带有背景图像的 UITableView 单元格

    我有一个 UITableView 其中有 3 张图像 1 表示选定的单元格 1 表示单元格背景 1 表示TableView 背景 我选择的单元格工作正常 但正常单元格和 TableView 背景 当您向下 向上滚动太多时 单元格后面的背景
  • 适用于 Android 的动画 WebP 编码器

    有没有关于如何编码的示例动画WebP对于安卓 或者也许有人成功了并且可以指导我完成它 我有一批 webP 图像 我想用它们创建一个动画图像 有 libwebp 库 但是 它不支持动画 webP 如果我从所读内容中理解正确 我需要使用 web
  • jQuery 加载到变量

    我需要将 jQuery 加载结果插入到变量中 页面 ajax html 上带有 id 测试的元素的内容 result load ajax html test 尝试使用jQuery get http api jquery com jQuery
  • 如何将 NSMutableOrderedSet 转换为通用数组?

    我有这个for循环 p is a NSManagedObject fathers is a to many关系 所以我需要投射NSMutableOrderedSet to Family 但它不起作用 为什么 for f in p fathe
  • 查找向量中最接近的值

    我想要完成的是迭代双精度值向量并返回最接近的可能双精度值的向量位置 我对此有两个问题 当尝试使用以下命令查找向量中最接近的双精度值时lower bound 如果我输入 1 我只会收到非零的值 我不知道如何使用lower bound返回向量位
  • 在 `git rebase --update-refs` 之后自动推送

    Git 2 38 引入了 update refs标记为 rebase 命令 如果您有一个分支链 它将更新链中的所有分支 当我将大型 PR 分解为更容易审查的 PR 时 我发现这非常有用 然而 之后git rebase update refs
  • 将组名称获取到星号中相应的 pri 端口

    我正在使用 sagoma 8 端口卡 我的chan dahdi conf配置端口是 autogenerated by usr sbin wancfg dahdi do not hand edit autogenrated on 2015 0
  • Excel 单元格在双击之前不会计算

    我有一个包含三个求和函数的 Excel 工作表 该工作表是一个模板 因此除了 A 列中的一些文本描述外 工作表的其余部分是空白的 我使用 ETL 流程 Talend Open Studio 打开工作表 输入一些数据 附加几个其他工作表 并将
  • 如何从连接到同一网络的另一台计算机打开 create-react-app?

    我在用创建反应应用程序并托管在其默认端口本地主机 3000并希望从同一网络上的另一台设备访问它 我得到了我的主机IP的IP 使用ifconfig 192 168 0 5并尝试打开192 168 0 5 3000但这没有用 有什么办法可以实现
  • Laravel - 如何获取特定用户的委托角色

    我正在用 Laravel 做一个小工作并使用齐扎科信托公司 以管理员身份登录时我想查看全部Roles特定用户的 我搜索了一段时间但没有找到任何线索 我怎样才能使用Entrust或者我应该使用 SQL 查询吗 在您的 User 类中添加 pu
  • Windows 服务器上的 PTP 同步(与 Linux 相比) - 可以保证什么精度

    我想知道大家是否知道准确度如何PTP http en wikipedia org wiki Precision Time Protocol在 Windows Server 2008 上可以保证同步 我知道这个线程 Windows 中进程的最
  • 访问 Google Chrome 的缓存

    是否可以从扩展程序中访问 Google Chrome 的缓存 我想编写一个扩展 当无法访问在线页面时 例如互联网连接问题 加载页面的缓存版本 Updated 我知道我可以编写一个可通过扩展访问的 NPAPI 插件来完成此任务 但我不想编写一
  • Firestore 客户和发票,修订后的要求

    这个问题是此处发布的问题的后续问题 Firestore 客户和发票 如何建模 https stackoverflow com questions 50867267 firestore clients and invoices how to
  • C++ 错误:没有调用“print_size”的匹配函数

    我有这个代码 include