Каково объяснение отсутствия статического конструктора в C ++?

В чем причина отсутствия статического конструктора в C ++?

Если бы это было разрешено, мы бы инициализировали все статические элементы в нем в одном месте очень организованным образом, как:

//illegal C++
class sample
{
public:

    static int some_integer;
    static std::vector<std::string> strings;

    //illegal constructor!
    static sample()
    {
       some_integer = 100;
       strings.push_back("stack");
       strings.push_back("overflow");
    }
};

В отсутствие статического конструктора очень сложно иметь статический вектор и заполнять его значениями, как показано выше. статический конструктор элегантно решает эту проблему. Мы могли бы инициализировать статические члены очень организованным образом.

Так почему же в C ++ нет статического конструктора? В конце концов, в других языках (например, C #) есть статический конструктор!

29
задан Nawaz 14 March 2011 в 16:49
поделиться