blob: b24736e22b6b1395456a85361b43838b9d5f73d3 [file] [log] [blame]
//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++98, c++03
// RUN: %build -fno-exceptions
// RUN: %run
// RUN: %build
// RUN: %run
// UNSUPPORTED: c++98, c++03
// <vector>
// Test that vector won't try to call the move constructor when resizing if
// the class has a deleted move constructor (but a working copy constructor).
#include <vector>
class CopyOnly {
public:
CopyOnly() { }
CopyOnly(CopyOnly&&) = delete;
CopyOnly& operator=(CopyOnly&&) = delete;
CopyOnly(const CopyOnly&) = default;
CopyOnly& operator=(const CopyOnly&) = default;
};
int main() {
std::vector<CopyOnly> x;
x.emplace_back();
CopyOnly c;
x.push_back(c);
return 0;
}