pranavk wrote:

```
In file included from /usr/local/foo/home/prka/wip/unique/test.cpp:1:
In file included from 
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/memory:78:
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:1085:14:
 error: no matching conversion for functional-style cast from 'unsigned short 
*' to 'unique_ptr<unsigned short[][256]>'
 1085 |     { return unique_ptr<_Tp>(new remove_extent_t<_Tp>[__num]()); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/foo/home/prka/wip/unique/test.cpp:10:47: note: in instantiation of 
function template specialization 'std::make_unique<unsigned short[][256]>' 
requested here
   10 |   const std::unique_ptr<Node[]> nodes_ = 
std::make_unique<Node[]>(max_nodes_);
      |                                               ^
/usr/local/foo/home/prka/wip/unique/test.cpp:15:38: note: in instantiation of 
member function 'Base<256>::Base' requested here
   15 |   explicit Child(size_t max_bytes) : Base<256>(max_bytes) {
      |                                      ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:648:7:
 note: candidate constructor not viable: no known conversion from 'unsigned 
short *' to 'unique_ptr<unsigned short[][256]>' for 1st argument
  648 |       unique_ptr(unique_ptr&&) = default;
      |       ^          ~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:652:12:
 note: candidate constructor template not viable: no known conversion from 
'unsigned short *' to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  652 |         constexpr unique_ptr(nullptr_t) noexcept
      |                   ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:796:7:
 note: candidate constructor not viable: no known conversion from 'unsigned 
short *' to 'const unique_ptr<unsigned short[][256]>' for 1st argument
  796 |       unique_ptr(const unique_ptr&) = delete;
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:603:2:
 note: candidate template ignored: requirement 
'__and_<std::__or_<std::__or_<std::is_same<unsigned short *, unsigned short 
(*)[256]>, std::is_same<unsigned short *, std::nullptr_t>>, 
std::__and_<std::is_pointer<unsigned short *>, std::is_same<unsigned short 
(*)[256], unsigned short (*)[256]>, std::is_convertible<unsigned short (*)[], 
unsigned short (*)[][256]>>>>::value' was not satisfied [with _Up = unsigned 
short *, _Vp = std::default_delete<unsigned short[][256]>, $2 = 
_DeleterConstraint<default_delete<unsigned short[][256]>>]
  603 |         unique_ptr(_Up __p) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:662:2:
 note: candidate template ignored: could not match 'unique_ptr<_Up, _Ep>' 
against 'unsigned short *'
  662 |         unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
```

We get error messages like above with this commit. This compiles fine without 
this commit or with gcc.

https://github.com/llvm/llvm-project/pull/83124
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to