example3_move_constructors.cpp

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>

class MyClass {
public:
    MyClass() = default;
    MyClass(const MyClass&) = default;
    MyClass(MyClass&&) noexcept = default;  // Move constructor marked noexcept
};

int main() {
    std::vector<MyClass> vec;
    vec.push_back(MyClass());  // Efficient move operation because MyClass's move constructor is noexcept

    return 0;
}
Back to noexcept