std::thread f()
{
void some_function(); // <- here
return std::thread(some_function);
}
std::thread g()
{
void some_other_function(int); // <- here
std::thread t(some_other_function,42);
return t;
}
2
A
回答
4
1
這只是一個函數聲明,就像你想的那樣。將函數聲明放在頭文件中是常見的(也是推薦的),但這絕不是必需的。他們可能在職能部門。
1
定義一個函數返回一個thread
對象:
std::thread f()
{
聲明一個extern
功能不帶參數返回void
(通常這不是在局部範圍內進行的,但它是有效的):
void some_function();
啓動一個執行該函數的線程,並返回一個句柄:
return std::thread(some_function);
}
同一交易前:
std::thread g()
{
void some_other_function(int);
但這是無效的。你不能創建一個線程的副本,所以從技術上講,創建一個本地對象然後返回它並不好。如果編譯出來,我會感到很驚訝,但如果這樣做的話,它可能會在您爲調試器構建時破壞。
std::thread t(some_other_function,42);
return t;
}
這會工作,但:
return std::move(t);
+0
謝謝您的詳細解釋! – Liu 2010-09-15 02:32:54
相關問題
- 1. 有人可以解釋AlarmManeger的這種奇怪的行爲嗎?
- 2. 奇怪的PHP的oop行爲,有人可以解釋嗎?
- 3. 有人可以解釋這種奇怪的toString行爲嗎?
- 4. 有人可以解釋嗎?
- 5. 有人可以解釋一下嗎?
- 6. 使用tee的奇怪:任何人都可以解釋嗎?
- 7. 你能解釋一下這個奇怪的函數聲明行爲嗎?
- 8. 有人可以根據代表解釋下面的合成聲明嗎?
- 9. 有人可以解釋參數autovacuum_naptime嗎?
- 10. 有人可以解釋UIView奇怪的旋轉?
- 11. 有人可以解釋這個奇怪的JavaScript日期輸出?
- 12. 奇怪的代碼...有人可以解釋我這
- 13. 有人可以解釋這種奇怪的行爲?
- 14. 有人可以解釋路線的奇怪行爲?
- 15. 有人可以解釋一下關於mysqli關閉函數的這個聲明嗎?
- 16. 有人可以解釋iOS4的CMTime嗎?
- 17. 有人可以解釋這個奇怪的Pygame導入約定嗎?
- 18. 有人可以解釋這個奇怪的Python/Django導入行爲嗎?
- 19. 有人可以在GWT中解釋這個奇怪的字符串事情嗎?
- 20. 有人可以在Javascript中解釋這種奇怪的行爲嗎?
- 21. 有人可以用ThreadPool來解釋這種奇怪的行爲嗎?
- 22. 有人可以解釋我這種WPF事件的奇怪行爲嗎?
- 23. Javascript原型怪癖 - 任何人都可以解釋一下嗎?
- 24. 有人可以解釋這個聲明是如何工作的?
- 25. 有人可以解釋我的回調函數嗎?
- 26. 有人可以解釋函數mkpp和ppval的行爲嗎?
- 27. 有人可以解釋在JavaScript getCookie()while循環的函數嗎?
- 28. 有人可以向我解釋PHP中的pack()函數嗎?
- 29. 有人可以解釋我的函數deleteButton(this)嗎?
- 30. 有人可以解釋R中pvclust函數的輸出嗎?
我認爲有可能是一個編輯衝突...對不起...但我沒有看到問題的兩種方式。你能否至少在代碼中添加一條評論來說明你認爲奇怪或缺失的內容? – Potatoswatter 2010-09-15 02:15:34
對不起,我英文很差。 – Liu 2010-09-15 02:17:16
@Liu:不要讓你可憐的英語阻止你試圖表達你的問題。 1)練習完美。 2)現在,我們沒有什麼可回答的。 – Potatoswatter 2010-09-15 02:18:13