Я пытаюсь скомпилировать простое объявление общего указателя, но использую g++ -std=c++11 main.cpp -o main
с помощью cmd, но по некоторым причинам это вызывает кучу ошибок. Я пытался найти похожие вопросы в Stack Overflow, но ни один из них не соответствует моей проблеме.
код:
std::shared_ptr<int[]>array(new int[100]);
Заголовочные файлы:
#include<iostream>
#include<memory>
версия компилятора: g ++ (MinGW.org GCC-6.3.0-1) 6.3.0
Ошибка:
In file included from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\shared_ptr.h:52:0,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\memory:82,
from main.cpp:2:
c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\shared_ptr_base.h: In instantiation of 'std::__shared_ptr<_Tp, _Lp>::__shared_ptr(_Tp1*) [with _Tp1 = int; _Tp = int []; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]':
c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\shared_ptr.h:117:32: required from 'std::shared_ptr<_Tp>::shared_ptr(_Tp1*) [with _Tp1 = int; _Tp = int []]'
main.cpp:7:42: required from here
c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\shared_ptr_base.h:885:39: error: cannot convert 'int*' to 'int (*)[]' in initialization
: _M_ptr(__p), _M_refcount(__p)
^`
Я относительно новичок и не знаю, что означает эта ошибка. Любые предложения будут полезны.
shared_ptr
наstd::array
. - person user4581301   schedule 13.10.2018