2013-07-18 17 views
5

का उपयोग करके एंड्रॉइड एनडीके में अपूर्ण प्रकार का अमान्य उपयोग मैंने यह जांचने के लिए निम्न फ़ंक्शन का उपयोग करने का प्रयास किया है कि std :: async को एंड्रॉइड एनएनडीके में विंडोज़ में सिग्विन के साथ ग्रहण के साथ समर्थित किया गया है या नहीं। समारोह मैं इस्तेमाल किया निम्नलिखितसी ++ 11 std :: async

मशीन है: r8e

ग्रहण: 64 बिट cygwin

Android के साथ 8 जीत जूनो 4.2.1

एडीटी: 22.0.1

struct Foo 
{ 
Foo() : data(0) {} 
void sum(int i) { data +=i;} 
int data; 
}; 

int main() 
{ 
    Foo foo; 

    auto f = std::async(&Foo::sum, &foo, 42); 
    f.get(); 
    std::cout << foo.data << "\n"; 
} 

मुझे निम्न त्रुटि मिलती है:

विवरण संसाधन पथ स्थान टी ype अधूरा प्रकार 'std :: __ async_sfinae_helper :: प्रकार {उर्फ struct std :: भविष्य}' Sample.cpp/Cli13/JNI लाइन 63 सी के अवैध उपयोग/C++ समस्या

नोट: मैं _GLIBCXX_HAS_GTHREADS सेट और भी है ATXXIC_INT_LOCK_FREE के साथ GXX_EXPERIMENTAL_CXX0X ... डिफ़ॉल्ट रूप से ndk 4.6 टूलचेन का उपयोग करता है। मुझे गुणों में>> सी/सी ++ -> में मैन्युअल रूप से 4.7 के लिए gnu-libstd ++ शामिल करना था। क्या std :: async काम करने के लिए चारों ओर कोई काम है ???

धन्यवाद।

उत्तर

4

एंड्रॉइड एनडीके आर 8 में C++11 का पूर्ण रन-टाइम लाइब्रेरी समर्थन नहीं है। आपको कुछ तीसरे पक्ष stdlib का उपयोग करके अपने स्वयं के एनडीके को संकलित करने की आवश्यकता होगी या एनडीके में Clang 3.3 शामिल करने के लिए Google का इंतजार करना होगा जो C++11 सुविधा-पूर्ण है।

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