में प्रारंभकर्ता सूची आज ऐप्पल एक्सकोड के लिए कमांड लाइन टूल्स अपडेट करता है और फिर 318.0.58 से 318.0.61 तक क्लैंग को अपग्रेड करता है।क्लैंग
मैंने प्रारंभकर्ता सूची का उपयोग करने का प्रयास किया है, लेकिन कोड नीचे संकलित नहीं कर सकता।
#include <iostream>
#include <random>
#include <initializer_list>
int main()
{
std::mt19937 rng(time(NULL));
std::initializer_list<double> probabilities =
{
0.5, 0.1, 0.1, 0.1, 0.1, 0.1
};
std::discrete_distribution<> cheat_dice (probabilities);
int a[6] = { };
for (int i = 0 ; i != 1000; ++i)
{
++a[cheat_dice(rng)];
}
for (int i = 0; i != 6; ++i)
{
std::cout << i + 1 << "=" << a[i] << std::endl;
}
}
फिर, मैंने संकलन करने की कोशिश की।
त्रुटि लॉग
foo.cpp:9:10: error: no member named 'initializer_list' in namespace 'std'
std::initializer_list<double> probabilities =
~~~~~^
foo.cpp:9:33: error: expected '(' for function-style cast or type construction
std::initializer_list<double> probabilities =
~~~~~~^
foo.cpp:9:35: error: use of undeclared identifier 'probabilities'
std::initializer_list<double> probabilities =
^
foo.cpp:10:5: error: expected expression
{
^
foo.cpp:14:46: error: use of undeclared identifier 'probabilities'
std::discrete_distribution<> cheat_dice (probabilities);
^
5 errors generated.
दूसरी ओर, मैं जीसीसी-4.7.1-आर सी-20,120,606 साथ कोड ऊपर संकलन कर सकते हैं।
$ g++ -std=c++11 foo.cpp
क्या ऐप्पल के क्लैंग समर्थन प्रारंभकर्ता सूची नहीं है? बजना संस्करण: -std=c++0x
निर्दिष्ट करने (के रूप में @jweyrich सही ढंग से बताया) clang
कमांड लाइन के हिस्से के रूप द्वारा
$ clang++ -v
Apple clang version 3.1 (tags/Apple/clang-318.0.61) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.4.0
Thread model: posix
एप्पल के बजना पहचान नहीं कर सकते '-std = C++ 11' – user1214292
@ user1214292: यह पहचानता है' -std = C++ 0x' हालांकि। – jweyrich
@jweyrich लेकिन परिणाम अपरिवर्तित :( – user1214292