Aidar
Массив ссылок нельзя делать
Anton
Лично я писал контейнеры. Много. Чёртову тучу контейнеров. Включая всякие compile-time хитрые штуки. И было бы так классно написать: MyQewlContainer mqc = { 1, 2, 3 }; Но std::initializer_list не позволяет - информация о размере недоступна в компайл-тайме.
Меня лично выбесило то, что реализации сами по себе странные. В VS под капотом Pointer start, end; В gcc Pointer start; SizeType size; Причём сымитировать такое можно только (!!!) с помощью вариадиков и кортежей, если хочется именно кроссплатформы и без завязки на компиляторы.
Anton
Понятно, что std::, но блин, компилятор тут в принципе вносит свою "магию", а это как-то странно.
cyberzx 🇷🇺
как спамеры находят канал?
Vladislav
как спамеры находят канал?
В интернете куча списков тг-каналов
cyberzx 🇷🇺
хорошо было иметь возможность в ТГ сделать бота-дворецкого, который встречал ночиков и пускал их в канал только после краткого собеседования
cyberzx 🇷🇺
можно пару вопросов по плюсам задать, например
Matwey
можно пару вопросов по плюсам задать, например
хорошо было бы если бы этот бот просто мог ответить на любой вопрос по плюсам
Matwey
а еще лучше написать за меня весь код
Stanislav
Stanislav
хотя была идея для бота, которую @AlexFails ленится делать
Ioann_
Нагуглить ответы просто же
Vladislav
Боту - не очень
Vladislav
А вообще, капча-бот на входе в канал - это идея
Ioann_
Да в аське такая штука уже давно и почему мы не там сидим :?
cyberzx 🇷🇺
Потому что там нет каналов? )
cyberzx 🇷🇺
И аська уже тысячу лет никому не нужна
vladislav
почему мы не сидим в джаббере?
vladislav
#offtop
Ioann_
Я бы хотел высказаться за оффтоп - точнее вот за что, хотя меня побьют камнями сейчас - моя практика форумного общения, в чатах группах и т.д показывает, что оффтоп штука полезная временами. Во первых, хорошо когда в чате кто то пишет. Во вторых - не всегда удобно лезть из одного чата в другой чтобы прочитать пару слов. Без оффтопа чат скорее будет похож на некую пустошь.
Ioann_
#offtop
Ioann_
Согласен !
cyberzx 🇷🇺
Pro, скажите, как вы относитесь к perfect forwarding? Часто ли используете в своём коде? Понимаете, как оно работает?
Matway
Pro, скажите, как вы относитесь к perfect forwarding? Часто ли используете в своём коде? Понимаете, как оно работает?
Использую везде, куда дотянусь. Как работает - понимаю. Отношусь плохо :)
cyberzx 🇷🇺
А почему плохо?
cyberzx 🇷🇺
Мне редко удаётся встречать людей, которые понимают, что это такое и зачем оно. На работе устал коллегам уже объяснять
Matway
А почему плохо?
Исключения из правил не люблю. А здесь оно такое, неочевидное исключение. Да ещё и ломающее возможность шаблонизированную RV-ref иметь. Лучше бы просто другой синтаксис для universal references ввели.
cyberzx 🇷🇺
Да, в этом согласен. Хотя возможность шаблонизированную Rv-ref иметь всё таки есть
Matway
Да, в этом согласен. Хотя возможность шаблонизированную Rv-ref иметь всё таки есть
Если ты имеешь в виду через SFINAE разруливать, то довольно тошнотворное лекарство.
cyberzx 🇷🇺
Если ты имеешь в виду через SFINAE разруливать, то довольно тошнотворное лекарство.
Неа. Если аргумент имеет тип const T&&, то туда пойдёт только rvalue ref. Хотя каким боком тут конст? Да никаким. Просто это ломает reference collapsing
Matway
Только не спрашивай меня, на кой чёрт могут быть нужны const RV-ref :)
cyberzx 🇷🇺
а. ты имел ввиду const rvalue ref. так по стандарту rvalue ref не может быть константой
cyberzx 🇷🇺
то есть иметь константность
cyberzx 🇷🇺
по этому const T&& и T&& это один и тот же тип
cyberzx 🇷🇺
но const T&& не может быть universal reference
cyberzx 🇷🇺
в argument deduction
cyberzx 🇷🇺
http://en.cppreference.com/w/cpp/utility/pair/get этот ?
Matway
http://en.cppreference.com/w/cpp/utility/tuple/get
Matway
Перегрузки 4 и 8.
Matway
http://en.cppreference.com/w/cpp/utility/pair/get этот ?
Здесь тоже, да. Перегрузки 4, 8 и 12.
cyberzx 🇷🇺
эта версия с perfect forwarding template< class T, class... Types > constexpr T&& get(tuple<Types...>&& t) noexcept; а эта с rvalue ref template< class T, class... Types > constexpr const T&& get(const tuple<Types...>&& t) noexcept; разве нет?
Matway
Если ты имел в виду, что первая - UR (universal reference), то нет.
cyberzx 🇷🇺
Почему?
Matway
tuple<Types...> отключает UR.
Matway
Что, кстати, тоже так себе штука стандарта. См. identity.
Matway
http://en.cppreference.com/w/cpp/language/template_argument_deduction
Matway
Non-deduced contexts.
cyberzx 🇷🇺
как на практике вызвать get с const&& версией?
cyberzx 🇷🇺
get<0> (make_tupple(1, 2)); это что будет?
Matway
а. ты имел ввиду const rvalue ref. так по стандарту rvalue ref не может быть константой
В общем, по стандарту как раз может. Зачем - никто не знает :)
Stanislav
че не спите то :)
Matway
как на практике вызвать get с const&& версией?
const std::tuple<int> t; std::get<0>(std::move(t));
Matway
че не спите то :)
Всё-всё, ушёл ;)
Matway
get<0> (make_tupple(1, 2)); это что будет?
Это обычный RV. Доброй ночи.
cyberzx 🇷🇺
да я уже понял
cyberzx 🇷🇺
блин, уже рассвет. не получилось уснуть в темноте
Vladislav
че не спите то :)
universal references покоя не дают)
Grigory
@arseny @AsGreyWolf просмотрел еще раз материалы по атомикам и вот к чему пришел: 1. Порядок модификаций атомиков определен только для отношения происходит-раньше, которого нет при семантики relaxed без дополнительного упорядочивания операций. У Уильямса есть пример. 2. Последовательность освобождений происходит для операций release - ЧМЗ - ... - ЧМЗ вне зависимости от упорядочивания ЧМЗ операций и, как я понимаю, составляет так называемую "видимую последовательность побочных эффектов". Все это наводит меня на мысль, что при сценарии ЧМЗ(A - release) - ЧМЗ( B - acquire) - ЧМЗ(C - release) - ЧМЗ (B - relaxed) 2 последних операций будут согласованными, т.е. последняя ЧМЗ увидит изменения предыдущей.
Grigory
это да, потому что между ними нет синхронизации - для этого надо указывать для второй операции в B семантику acquire
Grigory
но меня интересует в этом конкретном случае судьба именно атомика )
Tom
Они обе perfect forwarding.
Они обе ничего с perfect forwarding общего не имеют. tuple же стоит. Иначе бы у нас сплошные ambiguities были.
Tom
Это все одно, я имею в виду, что это самые простые rvalue references
Tom
Или я чушь несу?
Tom
tuple<Types...> отключает UR.
А все, правильно. Извиняюсь
Крылатый
Пидоры. Закрыли
Там по ссылочке на такой же ишуй.
Крылатый
Его плюсуй.
Крылатый
А, стоп
Крылатый
Это другой ишуй!
Крылатый
Ой вей!