- 主题:能定义初始化顺序吗
标准做法不是meyer的local static吗?
静态变量放到函数里,返回其引用。
GetB里,先调用一把GetA,来初始化B。
如果是自定义对象,析构函数里要处理互相引用的情况。一般没这么复杂。
【 在 prc79 的大作中提到: 】
: 两个全局变量a,b
: 要求a在b之前完成初始化
--
FROM 1.86.17.*
你这写法好高级。
lambda配make_unique是为了?直接写个静态变量 static X ;有何不妥?
【 在 here080 的大作中提到: 】
: 是POD吗?定义成constexpr如果可以编译通过可能保证不会有顺序问题。
: 不能定义成constexpr的类型一般来说要避免全局变量。
: 实在不行可以用全局函数来代替。像下面的代码不仅可以保证X和Y都是安全的全局变量,还能保证X在Y之前被初始化好。
: ...................
--
FROM 1.80.241.*
interesting。
1 不执行析构,以避免析构问题。这样理解对不?
2 初始化只运行一次,但静态变量static关键字,11后已能保证仅初始化一次。这说法对吗??
3 深以为然。没有买卖就没有杀害,没有new就没有leak :-) —— 若是成员变量是uptr,若干原因不能在构造函数初始化,只能在某个SetX里,再赋值。这时右侧还用make_unique吗?
【 在 here080 的大作中提到: 】
: 直接static X,那么X在程序退出过程中会析构,这个析构顺序不定,可能会出现问题。
: lambda是为了保证初始化只运行一次。
: unique_ptr此处只是“没有特殊情况不使用new”的代码风格。
: ...................
--
FROM 1.86.17.*
嘿嘿,不是啊,大佬!
我是回80的帖子,他讲了三句话。我确认下理解的对不。
你也看下他的代码,意图是不是不要析构?
【 在 ilovecpp 的大作中提到: 】
: 又不想析构,又用make_unique保证它在初始化过程中出错时能析构?到底要不要析构想清楚啊。
--
FROM 117.39.193.*
7楼的三句(段)话
【 在 ilovecpp 的大作中提到: 】
: 又不想析构,又用make_unique保证它在初始化过程中出错时能析构?到底要不要析构想清楚啊。
--
FROM 117.39.193.*
这两天忙么? 我理解的对不,盼复,继续讨论啊
【 在 here080 的大作中提到: 】
: 直接static X,那么X在程序退出过程中会析构,这个析构顺序不定,可能会出现问题。
: lambda是为了保证初始化只运行一次。
: unique_ptr此处只是“没有特殊情况不使用new”的代码风格。
: ...................
--
FROM 1.85.206.*
大佬?
【 在 ilovecpp 的大作中提到: 】
: 又不想析构,又用make_unique保证它在初始化过程中出错时能析构?到底要不要析构想清楚啊。
--
FROM 1.85.206.*
哈哈,那就好。——最近忙啊!
等你回复的这两天,我已经开始研究版上另一个coroutine的帖子了~
【 在 here080 的大作中提到: 】
: 理解得很对
:
--
FROM 124.114.151.*