online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <future> #include <mutex> #include <chrono> #include <iostream> // using namespace std; <== dont do this // mutex mu; avoid global variables. class Object { public: Object() : m_var{ 1 } { } ~Object() { } void do_something() { using namespace std::chrono_literals; for(std::size_t n = 0; n < 30; ++n) { // extra scope to reduce time of the lock { std::scoped_lock<std::mutex> lock{ m_mtx }; m_var++; std::cout << "."; } std::this_thread::sleep_for(150ms); } } private: std::mutex m_mtx; char m_var; }; int main() { Object object; // extra scope to manage lifecycle of future { // use a lambda function to start the member function of object auto future = std::async(std::launch::async, [&] {object.do_something(); }); std::cout << "do something started\n"; // destructor of future will synchronize with end of thread; } std::cout << "\n work done\n"; // safe to go out of scope now and destroy the object return 0; }

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