Menu

Ordered Static Initialization

Anonymous

Ordered static initialization in C++

Exmaple:

#include "StaticInit.hpp"
#include <iostream>

struct Widget {
    ORDERED_STATIC_INIT_BEGIN(0)
        std::cout << "First Widget initialization\n";
    ORDERED_STATIC_INIT_END
    ORDERED_STATIC_INIT_BEGIN(3)
        h = 10;
        std::cout << "Second Widget initialization\n";
    ORDERED_STATIC_INIT_END
    static int h;
};

int Widget::h;

struct Button : Widget {
    ORDERED_STATIC_INIT_BEGIN(1)
        std::cout << "First Button initialization\n";
    ORDERED_STATIC_INIT_END
};

int main(){
    ProjectUtilites::OrderedStaticInitializer::init();
    return 0;
}

Print in console:
First Widget initialization
First Button initialization
Second Widget initialization


MongoDB Logo MongoDB