gpt4 book ai didi

c++ - 默认参数的默认构造

转载 作者:太空宇宙 更新时间:2023-11-04 15:16:06 25 4
gpt4 key购买 nike

前提:我很懒。而且我不喜欢排长队。

假设您有一个接受一个参数的函数,并且您想要为该参数指定一个默认值。假设参数是一个 std::map,默认值只是一个空映射。这样做的方法是

void foo (std::map<Key,Value> the_map = std::map<Key,Value>());

现在,如果 Key 和/或 Value 的名称很长(可能是模板化的),函数声明就会变长。如果有办法写类似的东西就好了

void foo (std::map<Key,Value> the_map = auto);

现在,我知道这不是关键字 auto 的使用,而只是为了解释这个概念:我不想仅仅因为一个已经很长的函数声明的长度加倍不得不写下一个简单的默认构造的默认元素。我只想告诉编译器“看,在那里构建一个默认的”。有没有办法做到这一点?另外,有没有人也觉得有这个需求?

注意:是的,我可以键入定义 map 类型并使用短名称。但我想要一种不同的方式。注 2:是的,我也可以重载该函数,这样它的一个版本不带参数而另一个版本带参数。但我想要一种不同的方式。

我想我正在寻找的是“默认默认参数”...

最佳答案

您可以将 {} 用作初始化器子句,它将对参数进行值初始化。

void foo(std::map<K, V> the_map = {});

关于c++ - 默认参数的默认构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33025171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com