2013-02-20 54 views
0
std::vector<boost::optional<double>> foo; 
//populate foo. 

向量是因爲新標準的活動,但遺憾的是他們並沒有上進行選購移動尚未:(包含boost ::可選對象的std :: vector對象是否可移動?可移動提升::可選?

  1. 任何計劃使可選活動?

  2. 請問上述矢量仍被有效地移動,就像任何其他矢量?無論

+0

請注意'boost :: optional'可能永遠不能移動。對於一個值類型,移動並不總是有意義的(即,如果對象是按值存儲的,則沒有任何東西可以將所有權轉移到目標對象) – 2013-02-20 17:47:29

+0

@DavidRodríguez-dribeas所以我想可選是主要用於小,最好是內置的,類型正確?所以一個可選的向量(如果向量很大)可能不是一個好主意,我猜? – user2015453 2013-02-20 17:54:46

+2

@DavidRodríguez-dribeas:它應該支持與包含IMO類型相同的移動機制。 'boost :: optional '應該是可移動的。 – 2013-02-20 18:11:06

回答

7

std::vector組件是STO的可動紅色類型。移動操作只需要指向一個向量內部緩衝區的指針指向另一個向量。存儲在緩衝區中的對象的類型是不相關的,因爲那些對象保持在原來的位置。

相關問題