c++ - 模板函数中的默认参数 (C++)

标签 c++ templates parameters default

我正在尝试在模板函数中使用默认参数。以下是我正在尝试做的事情的一个最小示例:

sort.h

template <typename T0, typename T1>
void sort(Vector<T0> &v0,Vector<T1> &v1=0)
{
    //sort v0, if (v1 != 0) sort it according to v0
}

ma​​in.cpp

#include "sort.h"
Vector<int> v0;
sort(v0);

这不会编译;编译器给出错误“没有匹配的函数来调用‘排序’”。

基本上这个函数应该对 vector v0(任意数据类型)进行排序。此外,以与 vector v0 相同的方式排序的第二个 vector v1(任意)可以作为参数给出。当然,我可以简单地通过使用重载函数来解决这个问题,但由于我想将附加 vector 列表扩展到最多 5 个,因此我需要数百个不同的函数。

更新:感谢您到目前为止的回复。我已经修改了我的问题描述,以便您更好地了解我正在尝试做什么。

最佳答案

引用不能指向任何内容。

关于c++ - 模板函数中的默认参数 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4400939/

相关文章:

javascript - 使用 IIFE 并传入参数,我应该什么时候这样做? JavaScript

c++ - 预处理器字符串化宏不起作用

c++ - 为什么 STL 仿函数本身是模板化的,而不是它们的函数调用运算符?

c++ - 在模板调用中将包装器类隐式转换为父类(super class)

batch-file - 使用参数包含等号的批处理文件覆盖 .INI 文件

http - 仅参数顺序不同的 HTTP 请求是否等效?

c# - 像素坐标到 3D 线(opencv)

c++ - 一种逐行读取文件的方法,但会出现问题

c++ - C++ 中的垂直条形图

c++ - 如何为 static_assert 的评估设置前提条件?