Я получаю сообщение об ошибке компилятора «нет подходящей функции для вызова make_shared» всякий раз, когда я пытаюсь использовать конструктор, который принимает любые аргументы.Так, например:
std::shared_ptr<int> foo = std::make_shared<int> ();
отлично работает.Но,
std::shared_ptr<int> foo = std::make_shared<int> (10);
Выдает следующую ошибку:
/usr/bin/clang -g -Wall -Wextra -Wc++11-extensions -c ./test.cpp
./test.cpp:7:30: error: no matching function for call to 'make_shared'
std::shared_ptr<int> foo = std::make_shared<int> (10);
^~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4700:1: note: candidate function [with _Tp = int, _A0 = int]
not viable: expects an l-value for 1st argument
make_shared(_A0& __a0)
Я взял приведенный выше код прямо отсюда http://www.cplusplus.com/reference/memory/make_shared/, и этот код отлично работает на веб-сайте cpp.sh,Я подозреваю, что что-то не так с настройкой моего компилятора.Запуск в iTerm на MacBook.Кроме того, я получаю ту же ошибку, даже если я удаляю различные варианты лязга, показанные выше.Есть идеи?Возможно ли, что мой заголовочный файл должен быть обновлен?Это с 4 сентября 2015 года. Кажется, достаточно недавно, чтобы C ++ 11 работал.
$ /usr/bin/clang --version
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
$ ls -l /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory
-rw-r--r-- 1 root wheel 174919 Sep 4 2015 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory