Альтернативные реализации STL в C ++ 11 и выше
Со временем появились различные альтернативные реализации STL *, такие как STLPort. Некоторые крупные корпорации также используют свой собственный внутренний порт STL для различных целей.
С C ++ 03 можно написать порт STL, используя только переносимые функции языка C ++, что означает, что любой соответствующий компилятор должен иметь возможность его компилировать.
Но в C ++ 11 нет определенных функций, которые требуюткомпилятор служба поддержки?
Например, я не вижу, какstd::is_standard_layout
может быть реализован с использованием только возможностей языка C ++. думаюstd::is_base_of
может быть реализовано с точки зренияstd::is_convertible
, используя базовые и производные указатели. Но я не могу себе представить, какstd::is_standard_layout
может быть реализовано. Могут быть и другие особенности, которые мне не приходили в голову.
Итак, я прав здесь? Разве невозможно написать полный порт стандартной библиотеки в C ++ 11, используятолько Особенности языка C ++?
* Я знаю, что STL и «стандартная библиотека C ++» не являются строго взаимозаменяемыми, но в данном случае я имею в виду стандартный библиотеку C ++.