Skip to content

Instantly share code, notes, and snippets.

@StrikerX3
Created January 2, 2024 18:16
Show Gist options
  • Save StrikerX3/de5f90c6928b41c30dbbe2f915d16d4a to your computer and use it in GitHub Desktop.
Save StrikerX3/de5f90c6928b41c30dbbe2f915d16d4a to your computer and use it in GitHub Desktop.
C++ lifetime checker struct
#pragma once
#include <cstdio>
// A simple object lifetime checker.
// Use this to figure out if/when your objects are being created, destroyed, copied or moved.
struct LifetimeChecker {
LifetimeChecker() {
printf("LifetimeChecker()\n");
}
LifetimeChecker(const LifetimeChecker &) {
printf("LifetimeChecker(const LifetimeChecker &)\n");
}
LifetimeChecker(LifetimeChecker &&) {
printf("LifetimeChecker(LifetimeChecker &&)\n");
}
~LifetimeChecker() {
printf("~LifetimeChecker()\n");
}
LifetimeChecker &operator=(const LifetimeChecker &) {
printf("LifetimeChecker::operator=(const LifetimeChecker &)\n");
return *this;
}
LifetimeChecker &operator=(LifetimeChecker &&) {
printf("LifetimeChecker::operator=(LifetimeChecker &&)\n");
return *this;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment