Skip to content

Instantly share code, notes, and snippets.

@rusdevops
Last active March 28, 2018 07:59
Show Gist options
  • Save rusdevops/4ede8987bf9b9348005a80d80cc0fdf1 to your computer and use it in GitHub Desktop.
Save rusdevops/4ede8987bf9b9348005a80d80cc0fdf1 to your computer and use it in GitHub Desktop.
#include <iostream>
#include <string>
#include <thread>
struct A {
static unsigned global_counter;
unsigned counter;
A() {
counter = global_counter++;
std::cout << "[" << std::this_thread::get_id() << "]";
std::cout << "A" << counter << std::endl;
}
~A() {
std::cout << "[" << std::this_thread::get_id() << "]";
std::cout << "~A" << counter << std::endl;
}
A(const A& a) {
counter = global_counter++;
std::cout << "[" << std::this_thread::get_id() << "]";
std::cout << "A&" << counter << std::endl;
}
A(A&& a) {
counter = global_counter++;
std::cout << "[" << std::this_thread::get_id() << "]";
std::cout << "A&&" << counter << std::endl;
}
void operator() (){
std::cout << "[" << std::this_thread::get_id() << "]";
std::cout << "A()" << counter << std::endl;
}
};
unsigned A::global_counter = 0;
int main(){
A a;
std::thread{ a }.join();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment