gpt4 book ai didi

c++ - 默认初始化 boost::optional

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:02 24 4
gpt4 key购买 nike

有没有办法在不提供 T 的名字的情况下默认初始化一个 boost::optional 变量?

struct MyStruct
{
int a;
};

int main(){
boost::optional<MyStruct> opt;
opt = MyStruct(); // <--
}

我的目标是在我只想默认初始化时省略提供结构名称​​opt

最佳答案

如果您的编译器支持可变参数模板并且您使用的是 Boost 1.56 或更高版本,请使用 emplace()没有参数:

opt.emplace();

如果不满足任何一个条件(没有可变参数模板的编译器或较旧的 Boost)使用不带参数的 in_place 工厂:

opt = boost::in_place();

在 Boost 1.59 中,您甚至可以在 C++03 编译器中调用 0 参数 emplace()

关于c++ - 默认初始化 boost::optional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28400339/

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