online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <iostream> #include <vector> class NonCopyable { public: NonCopyable(const NonCopyable &) = delete; NonCopyable(NonCopyable &&) noexcept = default; NonCopyable &operator=(const NonCopyable &) = delete; NonCopyable &operator=(NonCopyable &&) noexcept = default; NonCopyable() = default; virtual ~NonCopyable() = default; }; // NOTE: here things works as long as I dont override the destructor. If I do, it stops. class MyClass : public NonCopyable { public: MyClass() = default; // NOTE: when commented out, all works fine ~MyClass() override {} }; // NOTE: when all is put into a single class, everything compiles ok class MyClass2 { public: MyClass2() = default; ~MyClass2() noexcept { } MyClass2(const MyClass2 &) = delete; MyClass2 &operator=(const MyClass2 &) = delete; MyClass2(MyClass2 &&) noexcept = default; MyClass2 &operator=(MyClass2 &&) noexcept = default; }; int main() { std::vector<MyClass> mc; MyClass a; mc.emplace_back(std::move(a)); std::vector<MyClass2> mc2; MyClass2 a2; mc2.emplace_back(std::move(a2)); }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue