C++17 - std::net
От: Tasheehoo  
Дата: 17.10.15 23:37
Оценка: 28 (3)
Возможно не все вкурсе:
https://gcc.gnu.org/ml/libstdc++/2015-10/msg00050.html

Считаю, это замечательная новость!

Если кто не знает, Jonathan Wakely — сотрудник RedHat и основной контрибьютор libstdc++. Т.е. абсолютно большая часть С++11/С++14/С++17 — это его труд.
Очень грамотный человек, очень дружелюбный и открытый к общению. Его профиль можно найти как на SO, так и на LI.

Спасибо за внимание.
Re: C++17 - std::net
От: -MyXa- Россия  
Дата: 17.10.15 23:45
Оценка:
Здравствуйте, Tasheehoo, Вы писали:

T>Считаю, это замечательная новость!


В чём, собственно, новость, кроме переименования io_service в io_context?

Серьёзно, не понимаю, зачем они это делают.
Если не поможет, будем действовать током... 600 Вольт (C)
Отредактировано 17.10.2015 23:46 -MyXa- . Предыдущая версия .
Re[2]: C++17 - std::net
От: Tasheehoo  
Дата: 17.10.15 23:49
Оценка:
Здравствуйте, -MyXa-, Вы писали:

MX>Серьёзно, не понимаю, зачем они это делают.

Зачем делают что? Пеереименовывают io_service в io_context?
Да, это очень серьезный вопрос и он достоен особено глубоко анализа.

зы
теги расставлять по вкусу.
Re: C++17 - std::net
От: Vamp Россия  
Дата: 18.10.15 00:12
Оценка:
Здравствуйте, Tasheehoo, Вы писали:

T>Возможно не все вкурсе:

T>https://gcc.gnu.org/ml/libstdc++/2015-10/msg00050.html

Уродливый дизайн bsd-сокетов никуда не делся. Не вижу бенефита.
Да здравствует мыло душистое и веревка пушистая.
Re[2]: C++17 - std::net
От: Tasheehoo  
Дата: 18.10.15 00:34
Оценка:
Здравствуйте, Vamp, Вы писали:

V>Уродливый дизайн bsd-сокетов никуда не делся.

А какое отношение к этому имеют компилятор и стандартная библиотека С++?
Re[3]: C++17 - std::net
От: -MyXa- Россия  
Дата: 18.10.15 01:01
Оценка: +3 :)
Здравствуйте, Tasheehoo, Вы писали:

T>Здравствуйте, -MyXa-, Вы писали:


MX>>Серьёзно, не понимаю, зачем они это делают.

T>Зачем делают что? Пеереименовывают io_service в io_context?

В сообщении, на которое ты отвечаешь, есть вопросительное предложение. Повествовательное же, обычно, не требует ответа.

Boost обновляется довольно часто (вроде, к декабрю обещают 1.60) и реализует все фичи из Boost-а, баги его более-менее известны. Стандарт обновляется медленно, реализует не все фичи из Boost-а (к примеру, с Boost.ASIO можно и фалы читать асинхронно, не а только сеть) и на каких платформах будут какие баги (или различия в поведении) — ещё не известно. std::list::size — какая сложность? Дюжина лет потребовалось, чтобы понять, что std::string должен хранить непрерывный буфер. Да даже std::tuple у них вышел не очень, а тут целый <net>.

Скажем, смогу я с этим <net> асинхронно резолвить сразу несколько (напр., 100 тыс.) хостов? Или будет как в ASIO — асинхронно, но строго по одному за раз.

Копипастить из буста — это каждый может, а, например, рефлексию времени компиляции — тут сразу паника и суматоха.
Если не поможет, будем действовать током... 600 Вольт (C)
Re[4]: C++17 - std::net
От: Masterspline  
Дата: 18.10.15 02:17
Оценка: 6 (1)
> Скажем, смогу я с этим <net> асинхронно резолвить сразу несколько (напр., 100 тыс.) хостов? Или будет как в ASIO — асинхронно, но строго по одному за раз.

Асинхронно резолвить не сможешь никогда, потому что резолвинг — это не просто DNS запрос. Есть еще /etc/hosts и что угодно, что реализуется libNSS (а там могут быть и запросы к LDAP и libasral.so и ни одна из этих библиотек не гарантирует асинхронную реализацию). Поэтому разрешение адреса по имени — это вызов gethostbyname и более современных аналогов в отдельном потоке, например, через std::async() (примерно так, кстати, boost'овый асинхронный резолвер и делает, так что его можно реализовать руками так же эффективно).
Re[4]: C++17 - std::net
От: Tasheehoo  
Дата: 19.10.15 08:57
Оценка: +1
Здравствуйте, -MyXa-, Вы писали:

MX>Да даже std::tuple у них вышел не очень, а тут целый <net>.


А что с tuple не так?
Re[5]: C++17 - std::net
От: -MyXa- Россия  
Дата: 19.10.15 14:41
Оценка: 1 (1)
Здравствуйте, Tasheehoo, Вы писали:

T>А что с tuple не так?


Порядок конструирования не определён:
#include <tuple>
#include <iostream>

struct A
{
    A(){std::cout << "A";}
};
struct B
{
    B(){std::cout << "B";}
};

int main()
{
    std::tuple<A,B> t;
}

Может вывести или AB или BA.

Если мне порядок важен, то я буду вынужден использовать boost::tuple, который есть один и работает как мне надо.

Так чего ради они тащили boost::tuple в стандарт и чего ради щас тащат boost::asio?
Если не поможет, будем действовать током... 600 Вольт (C)
Re[6]: C++17 - std::net
От: uzhas Ниоткуда  
Дата: 20.10.15 11:10
Оценка:
Здравствуйте, -MyXa-, Вы писали:

MX>Если мне порядок важен, то я буду вынужден использовать boost::tuple, который есть один и работает как мне надо.


какие гарантии на этот счет дает boost? не смог найти в документации
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.