【发布时间】:2018-07-20 14:22:20
【问题描述】:
我需要在程序中大多数函数调用的末尾添加可选参数。现在函数的参数看起来像
foo(int a, char b, const unique_ptr c)
我添加的是最后一个参数的默认值,使其看起来像
foo(int a, char b, const unique_ptr c = NULL)
可以像我所做的那样在参数中分配 const 变量吗?还是这违背了常量变量的本质?
【问题讨论】:
-
你的编译器告诉你什么?
-
参数
const不是函数签名的一部分。 -
unique_ptr需要模板参数列表和正确的初始化,const在这里无关紧要,它也是初始化而不是对默认函数参数执行的赋值(不要让存在 @ 987654326@迷惑你) -
@GabrielKay 这是两种不同的类型。您不能将
std::unique_ptr隐式转换为指针。 -
使用
unique_ptr作为参数意味着您将传递参数的唯一所有权转移给 foo 函数。是否有意传递所有权?