码:
#include <memory>
using namespace std;
struct T {};
T* foo() { return new T; }
T const* bar() { return foo(); }
int main()
{
unique_ptr< T const > p1( bar() ); // OK
unique_ptr< T const [] > a1( bar() ); // OK
unique_ptr< T const > p2( foo() ); // OK
unique_ptr< T const [] > a2( foo() ); // ? this is line #15
}
Run Code Online (Sandbox Code Playgroud)
Visual C++ 10.0和MinGW g ++ 4.4.1的示例错误:
[d:\dev\test] > cl foo.cpp foo.cpp …