gpt4 book ai didi

c++ - 有没有办法初始化大括号中的成员?

转载 作者:搜寻专家 更新时间:2023-10-31 01:32:00 25 4
gpt4 key购买 nike

我有一个 DealSchedule 类,其中定义了一些成员,现在我必须用类似的东西初始化它:

DealSchedule trf_schedule;
trf_schedule.site_ = site;
trf_schedule.deal_id_ = deal_id;
trf_schedule.payment_date_ = payment_date;
trf_schedule.ccy1_ = ccy1;
trf_schedule.ccy2_ = ccy2;

有没有可能写得很好

DealSchedule trf_schedule 
{
site_ = site;
deal_id_ = deal_id;
payment_date_ = payment_date;
ccy1_ = ccy1;
ccy2_ = ccy2;
};

这将保护对初始化的更改。

我可以得出这样的结果(需要 c++14 支持在 lambda 捕获中重命名):

DealSchedule trf_schedule;
[&_=trf_schedule]()
{
_.site_ = site;
_.deal_id_ = deal_id;
_.payment_date_ = payment_date;
_.ccy1_ = ccy1;
_.ccy2_ = ccy2;
}();

最佳答案

正确答案是 R_Sahu 的,但如果您真的想要那种语法并且感到自毁...

struct _ : public DealSchedule { _() { 
site_ = site;
deal_id_ = deal_id;
payment_date_ = payment_date;
ccy1_ = ccy1;
ccy2_ = ccy2;
}} trf_schedule;

这使用内联结构进行初始化,然后您可以将其切回 DealSchedule

(实际上不要这样做)

关于c++ - 有没有办法初始化大括号中的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44320108/

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