Reinitialize Object In-Place

#include <iostream>
#include <new>   // placement new

using namespace std;

// Define struct Mode
struct Mode {
    int level;
};

int main() {
    int firstLevel, secondLevel;
    cin >> firstLevel >> secondLevel;

    // Statically allocated, properly aligned buffer
    alignas(Mode) unsigned char buffer[sizeof(Mode)];

    // Construct first Mode object
    Mode* mode = new (buffer) Mode{firstLevel};

    // Manually call destructor
    mode->~Mode();

    // Reconstruct second Mode object in the same buffer
    mode = new (buffer) Mode{secondLevel};

    // Print final mode level
    cout << mode->level;

    // Manually call destructor
    mode->~Mode();

    return 0;
}

Solving Approach

 

 

 

 

 

 

Upvote
Downvote
Loading...

Input

3 9

Expected Output

9