Ответ 1
Нет, это не так. Что касается ближайшего будущего, комитет стандартов С++ создал исследовательскую группу, которая разрабатывает предложение сетевого уровня. Похоже, что они идут на восходящий подход, начиная с базового уровня сокета, а затем строят поддержку HTTP/etc. Они хотят представить основное предложение сокета на октябрьском заседании комитета.
Что касается того, почему они не помещали это в С++ 11, это чисто умозрительно.
Если вы хотите мое мнение по этому вопросу, то по этой причине.
Если вы создаете программу, которая что-то делает, у нее есть определенные функции, вы можете выбрать библиотеки по одной из двух причин. Одна из причин заключается в том, что эта библиотека делает то, что необходимо для реализации вашего кода. А другой - потому, что он делает что-то полезное при реализации кода вообще.
Очень сложно для дизайна для конкретной программы сказать: "Я абсолютно должен использовать std::vector
для хранения этого списка элементов!" Дизайн программы не так специфичен. Если вы создаете веб-браузер, идея браузера не волнует, если он содержит свои вкладки в std::vector
, std::list
или созданном пользователем объекте. Теперь, некоторые разработки могут настоятельно предложить определенные структуры данных. Но редко дизайн явно говорит о том, что что-то низкоуровневое, как std::list
, крайне важно.
std::list
может использоваться практически для любой программы. Как может std::vector
, std::deque
и т.д.
Однако, если вы создаете веб-браузер, бутилированный в рамках этого проекта, это сеть. Вы должны либо использовать сетевую библиотеку, либо написать сетевой слой самостоятельно. Это фундаментальное требование этой идеи.
Термин, который я использую для прежнего типа, для библиотек, которые могут быть использованы во всех случаях, является "полезными" библиотеками.
Threading - это утилитная библиотека. Дизайн может стимулировать потоки через необходимость реагировать на пользователя, но есть способы реагировать без превентивной многопоточности. Поэтому в большинстве случаев потоки - это выбор реализации. Threading - это утилита.
В сети нет. Вы используете сеть только в том случае, если ваш дизайн специально требует ее. Вы не решаете просто сбрасывать сети в программу. Это не деталь реализации; это требование к дизайну.
Я считаю, что стандартная библиотека C/С++ должна реализовывать только утилиты. Это также почему я против других идей в супертяжелом весе, таких как синтаксические анализаторы XML и т.д. Это не так, потому что другие библиотеки имеют эти вещи, но для C и С++ это не лучший выбор.