2010-10-14 18 views
12

के जीसीसी प्रयोगात्मक कार्यान्वयन पर भविष्य का अपवाद मैं सी ++ 0x थ्रेडिंग के साथ प्रयोग कर रहा हूं, आंशिक रूप से जीसीसी 4.5 में कार्यान्वित किया गया है और मुझे एक समस्या है, जिसे मैं समझ नहीं पा रहा हूं। आइए इस कोड पर एक नज़र डालेंstd :: सी ++ 0x

#include <future> 
#include <iostream> 

int main() 
{ 
     std::cout << std::async([]() { return 10; }).get() << std::endl; 
} 

यह काफी सरल है और काम करना चाहिए, लेकिन ऐसा नहीं है। यह फेंकता std :: system_error

'std :: system_error' क्या() का एक उदाहरण फेंकने के बाद कहा जाता है समाप्त: गर्भपात

क्या() रिक्त स्ट्रिंग देता है, इसलिए कोई त्रुटि है बिल्कुल जानकारी इसके अलावा, यह ऑनलाइन कंपाइलर पर काम नहीं कर रहा था, जो जीसीसी 4.5 का भी उपयोग करता है, लेकिन अब यह काम करता है। आप इसे यहां देख सकते हैं http://liveworkspace.org/code/f3003d62a758e047a880920c84f1241c लेकिन कल यह एक ही अपवाद फेंक रहा था (हालांकि, सर्वर पर कोई बदलाव नहीं किया गया है)। क्या आप जानते हैं कि समस्या क्या है?

धन्यवाद।

+0

वास्तव में आप किस निर्माण का उपयोग कर रहे हैं? –

+0

जीसीसी संस्करण 4.5.0 (जीसीसी) – confucius

उत्तर

18

-lpthread से लिंक करने का प्रयास करें। किसी कारण से थ्रेड लाइब्रेरी pthreads के बिना संकलित करता है लेकिन रनटाइम पर दुर्घटनाग्रस्त हो जाता है।

+2

हाँ !!! बस! बहुत बहुत धन्यवाद। – confucius

संबंधित मुद्दे