나는 Clang이 말한 것을 이해할 수 없거나 G ++처럼 올바르게 작동하는지 여부를 알 수 없다. 4.7이 제대로 컴파일하는 것처럼 보인다.Clang ++ 비 정적 데이터 멤버 초기화 오류? C++ 11
비 정적 멤버에 중괄호를 사용하여 std::uniform_int_distribution
을 초기화하려고하면 오류가 발생합니다.
error: chosen constructor is explicit in copy-initialization
std::uniform_int_distribution<Int> random_dist{0, b-1};
^~~~~~~~
/usr/include/c++/v1/algorithm:2644:14: note: constructor declared here
explicit uniform_int_distribution(result_type __a = 0,
나는, 그러나, 이렇게하여 초기화 할 수 있습니다 :
std::uniform_int_distribution<Int> random_dist = std::uniform_int_distribution<Int>(0, token_count - 1);
std::uniform_int_distribution<Int> random_dist{0, token_count-1};
:
다음은 실패 (token_count
템플릿 매개 변수입니다)
다음 명령을 사용하여 컴파일하고 있습니다 : clang++ -std=c++11 -stdlib=libc++ -lc++abi
wit h Clang-3.2. clang -v
의
출력 : 당신은 아마 아직 일반화 초기화를 구현하지 않는 그 소리의 버전이
clang version 3.2 (trunk 157320)
Target: x86_64-unknown-linux-gnu
Thread model: posix
당신이 우리에게'그 소리의 -v'에서 정확한 출력을 줄 수는? – Xeo
아마 old-school'std :: uniform_int_distribution random_dist (0, token_count-1)'을 사용할 수 있습니다. –
kennytm
이 [버그] (http://llvm.org/bugs/show_bug.cgi?id=12120) *가 해당 될 수 있지만 확실하지 않습니다. –