https://bugs.llvm.org/show_bug.cgi?id=47892

            Bug ID: 47892
           Summary: vector.resize failed to compile if move constructor is
                    deleted with c++17
           Product: libc++
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: All Bugs
          Assignee: unassignedclangb...@nondot.org
          Reporter: yichen....@inf.ethz.ch
                CC: llvm-bugs@lists.llvm.org, mclow.li...@gmail.com

root@834982c35017:/# /llvm-install/bin/clang++ --version
clang version 12.0.0 (https://github.com/llvm/llvm-project.git
f2e08c688e6c3223d14c4817c5ce0b55c03a8d1b)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /llvm-install/bin
root@834982c35017:/# /llvm-install/bin/clang++ --std=c++17 -o /dev/null -c
test.cc
root@834982c35017:/# /llvm-install/bin/clang++ --std=c++17 -stdlib=libc++ -o
/dev/null -c test.cc
In file included from test.cc:1:
In file included from /llvm-install/bin/../include/c++/v1/vector:276:
In file included from /llvm-install/bin/../include/c++/v1/__bit_reference:15:
In file included from /llvm-install/bin/../include/c++/v1/algorithm:643:
/llvm-install/bin/../include/c++/v1/memory:1634:13: error: static_assert failed
due to requirement '__is_cpp17_move_insertable<std::__1::allocator<S>,
false>::value' "The specified type does not meet the requirements of
Cpp17MoveInsertable"
            static_assert(__is_cpp17_move_insertable<allocator_type>::value,
            ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/llvm-install/bin/../include/c++/v1/vector:954:21: note: in instantiation of
function template specialization
'std::__1::allocator_traits<std::__1::allocator<S>>::__construct_backward_with_exception_guarantees<S
*>' requested here
    __alloc_traits::__construct_backward_with_exception_guarantees(
                    ^
/llvm-install/bin/../include/c++/v1/vector:1098:9: note: in instantiation of
member function 'std::__1::vector<S,
std::__1::allocator<S>>::__swap_out_circular_buffer' requested here
        __swap_out_circular_buffer(__v);
        ^
/llvm-install/bin/../include/c++/v1/vector:2027:15: note: in instantiation of
member function 'std::__1::vector<S, std::__1::allocator<S>>::__append'
requested here
        this->__append(__sz - __cs);
              ^
test.cc:12:5: note: in instantiation of member function 'std::__1::vector<S,
std::__1::allocator<S>>::resize' requested here
  v.resize(1);
    ^
1 error generated.
root@834982c35017:/# cat test.cc
#include <vector>

class S {
  public:
    S();
    S(const S &);
    S(S &&) = delete;
};

int main() {
  std::vector < S > v;
  v.resize(1);
  return 0;
}

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to