Constantine
Потому что язык чата - русский. В любом случае, я плохо представляю, насколько коряво выглядят фразы достаточно хорошо владеющих английским для британцев, учитывая, например,
Английский язык является языком с ритмичным ударением, то есть ударные слоги отделены друг от друга в речи равными промежутками времени, а безударные слоги сокращаются так, чтобы соблюдался этот ритм
Evgenii
наверно потому что например это твое предложение по грамотности так себе
Berkus
Миша
Привет. Как правильно читается такая запись? Application* _applicaton
Миша
Или киньте ссылкой, где почитать
Миша
Не знаю даже как правильно загуглить
Boris
указатель на объект класса Application
Миша
Спасибо, а тильда что значит? virtual ~Command();
Berkus
Миша
Anton
kitsu
Чего-то не могу отсыкать в гугле ответ: вызов realloc с меньшим размером гарантированно выполнится за константу?
s54820
kitsu
т.е доки не ограничивают и все аллокации памяти impl-defined?
Anton
Ребят, вопрос по structure bindings.
Какими условиями должен соотвествовать класс, чтобы этим можно было пользоваться?
Vladislav
http://en.cppreference.com/w/cpp/language/structured_binding#Case_3:_binding_to_public_data_members
Anton
tuple и tie хранят данные публично?
Anton
Это просто реально странно, что вроде фитча полезная, но ограничения конские.
Vladislav
Anton
Vladislav
http://en.cppreference.com/w/cpp/language/structured_binding#Case_2:_binding_a_tuple-like_type
Vladislav
Вот только так(
ну вообще вполне логично что для structure bindings должен быть способ публично читать эти данные из объекта
Vladislav
а как ты собрался распаковывать что-то с неконстантным числом элементов?
Vladislav
а caller как будет выглядеть?
Anton
Vladislav
нет, я про то как ты будешь собственно биндить
Anton
Ну, например.
auto &[one, two, three] = container;
В компайл тайм известно, по какому индексу надо вытащить элементы. По идее информации достаточно же.
Vladislav
а кто проверит что их ровно 3?
Vladislav
без этой проверки этот код опасен
Anton
Ну, тут да.
Anton
> (это) штука, привязанная к std, конкретным именам и генерируемым компилятором дополнительным (upd. высокуровневым) кодом, как и в случае с initializer_list.
Но это lock на уровне языка. Оно не будет не воспроизводимо.
Остаётся только case с распаковкой публичных полей.
Vladislav
прежде чем ты допишешь вопрос, советую прочитать правила чата
Timur
Телепатия!
Александр
Max
то есть внутри лямбды можно?
Max
а почему тогда лямбда должна быть именно static
Max
Я как раз не хочу принимать класc. Если уже принимать, то можно тогда просто убрать using ThisType = Clazz
Berkus
столько адовых извращений ради одной строчки friend class Derived;
подумай о бедных людях которым потом это говнище сопровождать!
Max
Почему говнище?
Berkus
когда ты через год попробуешь в этом коде разобраться - я послушаю твои ругательства
Max
а в тут разбираться-то?
https://ideone.com/qsYqMj
Max
Разве что макрос, который выводит тип класса, в котором ты его прописывешь. Как по мне, так получилось неплохо. Наследник легко делается, просто юзается.
Berkus
Max
сарказм?
Max
Berkus
нет, без таблички
Berkus
https://ideone.com/jkT6ww просто у меня есть версия еще короче и без макросов!
Berkus
про singleton accessible тоже неплохо бы написать документацию длиннее чем // magic
Max
Berkus
мкей, я то чо, каждый сам пиздец своего счастья!
Max
проехали, а то спамим
Constantine
Можно ли как-то сделать (с модификацией языка), чтобы std::shared_ptr<Derived> был совместимым типом с std::shared_ptr<Base> ?
Anatoly
дык std::shared_ptr<Derived> приводится к std::shared_ptr<Base> без проблем
Egor
А можно код?
Александр
Max
Constantine
А можно код?
держи
struct Base {
virtual ~Base() {};
virtual std::shared_ptr<Base> clone() = 0; //сейчас работает с Base*
};
struct Derived : Base {
std::shared_ptr<Derived> clone() override = 0; //сейчас работает с Derived*
};
Александр
а что?
метод, у которого возвращаемый тип задаётся через -> type
Egor
Max
Egor
Egor
Потому что возвращаемое значение функции
Egor
Хотя...
Egor
Не, там ещё есть contravariant, кажется =)
Constantine
Max
Как?
Ну я имею ввиду сделать и там, и там shared_ptr<Base>
Max