성병 :: shared_ptr의 생성자는 작동하지 않는? 컴파일러는 다음과 같습니다표준 : : shared_ptr의 및 초기화 목록
$의 그 소리 ++ --version 애플 연타 버전 4.0 (태그/애플/그 소리-421.0.57) (LLVM의 3.1svn 기준)
편집 : shared_ptr을 대신 make_shared.
당신은 당신이 그 인수로 구성 새로운 개체를 만들려면make_shared
를 사용할 필요가
make -k
clang++ -std=c++11 -stdlib=libc++ main.cc -o main
main.cc:28:18: error: no matching function for call to 'make_shared'
auto ptr = std::make_shared<Func>({"foo", "bar", "baz"});
^~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/c++/v1/memory:4621:1: note: candidate function not viable:
requires 0 arguments, but 1 was provided
make_shared(_Args&& ...__args)
^
1 error generated.
마지막으로 완벽한 초기화는 이니셜 라이저 목록과 관련하여 실제로 완벽하지는 않습니다. – Puppy
{ "foo", "bar", "baz"}는 표현식이 아니며 유형이 없습니다 (자동으로 사용되는 경우 제외). – Cubbi