libcxx

libcxx mirror with random patches
git clone https://git.neptards.moe/neptards/libcxx.git
Log | Files | Refs

pointer_deleter.fail.cpp (827B)


      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 // Without rvalue references it is impossible to detect when a rvalue deleter
     11 // is given.
     12 // XFAIL: c++98, c++03
     13 
     14 // <memory>
     15 
     16 // unique_ptr
     17 
     18 // unique_ptr<T, const D&>(pointer, D()) should not compile
     19 
     20 #include <memory>
     21 
     22 struct Deleter {
     23   void operator()(int* p) const { delete p; }
     24 };
     25 
     26 int main() {
     27   // expected-error@+1 {{call to deleted constructor of 'std::unique_ptr<int, const Deleter &>}}
     28   std::unique_ptr<int, const Deleter&> s((int*)nullptr, Deleter());
     29 }