2010-02-22 56 views
3

從​​:奇C++成員函數聲明語法:&&預選賽

template <typename R> 
class shared_future 
{ 
... 
// move support 
shared_future(shared_future && other); 
shared_future(unique_future<R> && other); 
shared_future& operator=(shared_future && other); 
shared_future& operator=(unique_future<R> && other); 
... 
} 
究竟是什麼

是那些雙&符號?我去了「BS C++ Langauge 3d版」,找不到任何解釋。

+1

我知道你不能通過搜索找到它,但仍然是重複的:http://stackoverflow.com/questions/844241/why-are-c0x-rvalue-reference-not-the-default(I儘管如此,我會給你一個+1的努力和清晰度:P) – 2010-02-22 12:04:20

+0

謝謝,希望對標題的調整可以讓其他人找到解決方案。 – 2010-02-22 12:07:45

+0

問題是搜索時忽略符號,所以包含「&&」不起作用。你必須知道名稱「右值參考」才能找到關於它的問題。 – 2010-02-22 12:08:57

回答

6

這是用於右值引用的C++ 0x添加。

請參閱http://www.artima.com/cppsource/rvalue.html

+0

對於boost庫中的C++ 0x在發佈前開始使用它有點奇怪。 – 2010-02-22 12:02:51

+5

@Hassan:不,它不是。在標準化之前對特徵進行試驗要好得多(標準的主要目標之一是「標準化現有的實踐」),而這種試驗是推動的主要目標。實際的boost實現使用預處理器來選擇性地使用右值refs。 – 2010-02-22 12:06:46