Constantine
Nikita
Constantine
Constantine
Типа авторизации телеги
Constantine
Чтобы изначально аутентифицироваться при установлении открытого канала связи перед обменом ключами
Anonymous
Ostap ꑭ
CLion 2018.1 is released: more C++17, WSL, CMake Install, new languages supported, and much more! | CLion Blog
https://blog.jetbrains.com/clion/2018/03/clion-2018-1-cpp17-wsl-cmake-install/
Макс
Подскажите актуальный материал по работе с сетью на плюсах
🐙 Antony
Тут добрые люди застенограмили моё выступление: https://habrahabr.ru/company/oleg-bunin/blog/352280/
^ для тех, кто не был на C++ Russia 2017, но хочет почитать хотя бы один доклад
Крылатый
🐙 Antony
🐙 Antony
Aidar
Nikita
Спасибо)
Nikita
До этого было "an rvalue reference to a cv-unqualified template parameter"
Nikita
Вот сама бумага: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4262.pdf
Anatoliy
Кто-нибудь знает какой статус у предложения (если таковые есть) о class member initializers, где разрешается использовать auto в качестве type specifier-а (не только для static const/static constexpr а вообще)? Вот так struct A { auto i = 123; };.
Oleg
Че-т на какой-то джаваскриипт похоже.
Oleg
Более того - какой тип у i?
Nikita
это ж получается для полей можно будет выводить тип на основе условий
Nikita
аля std::conditional
Nikita
а стоп
Nikita
получается и сейчас же можно
Anatoliy
Anatoliy
и лямбду нельзя
Constantine
Anatoliy
Александр
Anatoliy
Anatoliy
struct A { int i[sizeof(A)]; }; - это и сейчас невалидный код
Anatoliy
A - incomplete в деклараторе типа
Constantine
Anatoliy
Constantine
ты троллишь?)
этот конструктор std::vector вызывает new A
Constantine
расскажите мне, как он инстанцирован по incomplete type
Anatoliy
замени std::vector< A > на std::array< A, sizeof(A) > - тогда справедливо
Constantine
Anatoliy
значит везде в std::vector::vector используются A & и A * и подобное валидное
Constantine
я знаю, что с точки зрения описания класса A это incomplete type
Constantine
но с точки зрения инициализатора поля A это complete type
Anatoliy
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4371.html вроде бы уже действует
Anatoliy
так что std::vector< A >::vector не использует sizeof(A)
Constantine
https://godbolt.org/g/3Lr6j6
Constantine
Constantine
конструктор std::vector::vector(size_t) не использует?
Constantine
который память аллоцирует?
Anatoliy
??????
это значит, что не зависит от type completeness
Constantine
type не зависит от completeness
Constantine
но std::vector::vector(size_t) не может быть инстанцирован для incomplete type
Constantine
как минимум смотрим второй пример
Constantine
там явная проверка
Constantine
с точки зрения class member initializer объявлямый тип является complete type
Anonymous
существует норм пример использования libev с C++11
Anonymous
?
Constantine
Constantine
Anatoliy
Constantine
Constantine
в инициализаторе поля класса этот класс complete
Constantine
так что можно делать sizeof
Anatoliy
согласен
Constantine
так что
struct A {
auto x = sizeof(A); //???
};
Constantine
и любое выражение через is_detected любое поле A
Anatoliy
а в спецификаторе типа - нет
Anatoliy
struct A {
auto x = sizeof(A); //???
};
- так было бы можно
Constantine
разумеется в class definition сам class это инкомплит тайп
Constantine
Constantine
decltype(sizeof()) не определен для incomplete type
Constantine
я выше пример написал
Anatoliy
а struct A { auto x = std::integral_constant< std::size_t, sizeof(A) >{}; }; - нет
Constantine
Anatoliy
Anatoliy
почему? что здесь не так?)
Constantine
потому что я парадокс лжеца построю
Constantine
как на noexcept
Anatoliy
так давай