मैं बहुत तरह संकलन समय पर functors की एक सरणी बनाने के लिए, कोशिश कर रहा हूँ: (पूरी फाइल):अप्राप्य ब्लॉक scoping त्रुटि, सी ++ functors की सरणी
#include <functional>
using namespace std;
function< float(float tElevation, float pAzimuth)> colorFunctions[] = {
[](float tElevation, float pAzimuth) -> float {
return 2.0f ;
},
} ;
int main()
{
}
यह ठीक काम करता है। लेकिन जैसे ही आप, functor ब्लॉक के अंदर एक स्थानीय बनाने के लिए इस तरह की कोशिश के रूप में:
function< float(float tElevation, float pAzimuth)> colorFunctions[] = {
[](float tElevation, float pAzimuth) -> float {
float v = 2.0f ;
return v ;
},
} ;
प्राप्त होने वाले त्रुटि 1 त्रुटि C1506: अप्राप्य ब्लॉक scoping त्रुटि
मैं इन ब्लॉक के अंदर स्थानीय लोगों घोषणा कर सकते हैं? यह काम नहीं लग रहा है।
मैं क्योंकि उनमें अप्रयुक्त और जीसीसी जा रहा है के मापदंडों को मार डाला कोई चेतावनी या कुछ भी देता है। यहां तक कि, एकमात्र त्रुटि अप्रयुक्त पैरामीटर के लिए है। – chris
क्या यह लैम्ब्डा अभिव्यक्ति के अंत में अल्पविराम है? – coelhudo
@coelhudo, यह एक प्रारंभकर्ता सूची है; [इसकी वैधता की] (http://stackoverflow.com/questions/7043372/int-a-1-2-weird-comma-allowed-any-particular-reason)। इससे बाद में आइटम जोड़ना आसान हो जाता है। – chris