@ProCxx

Страница 1770 из 2477
Denis
20.02.2018
06:32:36
Просто никогда так не делай.

Maks
20.02.2018
06:33:01
Я предпочитаю писать Foo* bar; А в одной строчке объявлять больше одной переменной — это плохой стиль.
Я осведомлен, что это плохой тон. Здесь это в качестве иллюстрации

Dmitry
20.02.2018
06:33:06
больше пробелов богу пробелов! Node * node;

Google
Ender
20.02.2018
06:33:16
Первая ссылка в Гугле

Maks
20.02.2018
06:33:38
Denis
20.02.2018
06:34:38
Ну просто плохой тон в качестве иллюстрации — плохая иллюстрация. Если ты не объявляешь в одной строчке больше одной переменной, то у тебя нет проблем и можно лепить астериск к имени типа везде.

Ender
20.02.2018
06:35:23
Proof https://imgur.com/gallery/a2wCo

Oleg
20.02.2018
06:37:52
Если использовать первый вариант, то запись вида Node* node, next_node. выглядит неоднозначно и ухудшает читаемость кода.
стайлгайд - дело личное/проектное - просто пиши везде одинакого и люди тебя поймут. И да - все объявления делай на новых строчках и такой неоднозначности не будет

Maks
20.02.2018
06:38:11
Proof https://imgur.com/gallery/a2wCo
Я не знал, как именно называется этот символ на клавиатуре, мой поисковый запрос был составлен несколько другим образом. Спасибо за помощь!

Berkus
20.02.2018
06:39:58
Что там нужно указывать? Только CROSS_COMPILE, а дальше все одной командой собирается
Вот это и нужно, у меня тоже хост тулы и кросс ядро собирается одной командой ПОСЛЕ запуска цмейка

Maks
20.02.2018
06:41:53
Not ZVYOZDO4KA
SNEZHINKA =)

Google
Maks
20.02.2018
06:42:37
where to place asterisk sign to make pointer in c++
Для меня астериск до этого дня был системой телефонии

Joy
20.02.2018
06:42:58
Я не ходил по ссылкам, просто чтобы попробовать угадать - правильней ставить ее у типа, потому что она относится к типу, т.е. int* это тип "указатель на инт". Так? Сейчас пойду прочитаю)

Denis
20.02.2018
06:45:40
У тебя может не быть имени переменной, а тип и астериск может быть. Т.е. например void foo(Bar*, Moo**); void foo(Bar *, Moo **); Второй вариант как-то странно выглядит. А если лепить к имени типа всегда, то единообразно во всех случаях, кроме случая объявления нескольких переменных на одной строчке, который плохой.

Ender
20.02.2018
06:46:27
А ** это возведение в степень?))

Denis
20.02.2018
06:46:39
Ты серьёзно?

Ender
20.02.2018
06:46:48
Нет.

Denis
20.02.2018
06:47:31
https://cdecl.org/

Alexandr
20.02.2018
06:47:32
Всем здрасти

Matwey
20.02.2018
06:49:30
Ender
20.02.2018
06:52:06
Второй вариант нормально выглядит. Тебе же сказали, если ты сам пишешь, то стиль это вкусовщина. Например стиль кода с типом результата для функций на отдельной строке или открывающаяся фигурная скобка на одной строке с if (...) для меня выглядят очень мерзко. Но кому-то нравится. А если все в проекте так пишут, то тут надо соответствовать, просто ради приличия. Я например всегда (foo *, bar *, ...) пишу. Мне так удобнее. или так же (foo &, bar &)

Denis
20.02.2018
06:52:26
Не совсем.

Вкусовщина — это если нет практических проблем.

Pavel
20.02.2018
06:53:19
Denis
20.02.2018
06:53:20
А с объявлениями двух и более переменных на одной строке — когда ты вносишь изменения в имя переменной, её инициализатор или тип — у тебя в системе контроля версий будет вся строчка подсвечена как модифицированная.

Ну, да, согласен, что вкусовщина. Просто вкус бывает хороший и плохой. Хороший создаёт меньше проблем такого рода как я выше описал.

Oleg
20.02.2018
06:54:24
Вкусовщина — это если нет практических проблем.
если из-за стиля у тебя практические проблемы, то у меня для тебя плохие новости

Ender
20.02.2018
06:54:36
Лол

Denis
20.02.2018
06:55:01
>переход на личности

Люблю здоровые дискуссии.

Дальше по накатанной, да? У тебя из-за стиля тоже могут быть практические проблемы, а если ты этого не знаешь, то у меня для тебя плохие новости.

Google
Igor
20.02.2018
06:59:10
https://github.com/pyk/cmake-tutorial
https://pabloariasal.github.io/2018/02/19/its-time-to-do-cmake-right/ ещё вот годнота подъехала

Дед Пегас
20.02.2018
07:03:16
Главное, не страдать хернёй типа int* foo, bar;

Berkus
20.02.2018
07:03:22
Ну вот я так и хочу. А то тут говорят три раза запускать надо
github.com/metta-systems/metta смотри как сделан цмак. Доеду до компа подробней расскажу

Ender
20.02.2018
07:05:42
Главное, не страдать хернёй типа int* foo, bar;
Херня типа инт может доставить проблем.

Дед Пегас
20.02.2018
07:06:45
Поэтому лучше shared_ptr<int> foo, bar; ;P

Ender
20.02.2018
07:07:31
:D

Denis
20.02.2018
07:07:50
::enable_shared_from_this до сих пор актуально?

Ildar
20.02.2018
07:07:55
А точно ли тебе там нужен шаред? Мб unique_ptr хватило бы

Дед Пегас
20.02.2018
07:08:05
Но всё от задач.

Ildar
20.02.2018
07:08:15
Это да

Ender
20.02.2018
07:08:46
Всем auto_ptr

Berkus
20.02.2018
07:08:54
Всем auto_ptr
Давно убрано из стандарта

Denis
20.02.2018
07:09:52
Да а что
Когда наткнулся на это в когда-то давно было очень неудобно — надо было отдавать shared_ptr из this в теле наследников, а shared_ptr был от базового типа.

Точно не помню, но как-то это всё было неудобно. Думал может что лучше завезли.

Google
Ender
20.02.2018
07:10:06
C++11 работает. Возможно уже есть тонны легаси-говнокода с этим.

А давно - это в прошлом году.

Ildar
20.02.2018
07:10:39
давно сказали не использовать его

Он с C++11 в deprecated

Denis
20.02.2018
07:11:35
Что? Если "переход на личности" в дискуссии — это больная мозоль, то да.

А предметно — нет.

Berkus
20.02.2018
07:14:51
Точно не помню, но как-то это всё было неудобно. Думал может что лучше завезли.
Все это нормально работает если уметь пользоваться. Добавь к esft еще crtp и будет норм

Admin
ERROR: S client not available

Ender
20.02.2018
07:19:46
А ничего.

Matwey
20.02.2018
07:52:06
Хочу более прямой unique_ptr

Сейчас не очень удобно использовать указатель на функцию в качестве Deleter-а

Который и так уже является частью типа

Можно было бы туда просто запихать указатель на функицю (а он может быть аргументом шаблона) и избежать использования еще одного указателя под Deleter и необходимости безумной инициализации каждый раз одним и тем же значением

Может конечно я им как-то не так пользуюсь

Хотя, я понял

Нужно сделать обертку дополнительную

Вокруг указателя

Google
Matwey
20.02.2018
08:00:12
operator new в классе... Не?
В каком классе?

Ilia
20.02.2018
08:00:30
Matwey
20.02.2018
08:00:37
Нет, спасибо, с ним всё ок

Я имею ввиду, что в любой C-щной библиотеке или SDK будет один и тот же паттерн: myhandle* new_resource(); free_resource(myhandle*) Вот этот myhandle очень удобно оборачивать в unique_ptr и там хранить. Потому-что класс, который его инкапсулирует, сразу становится некопируемым автоматически, ресурс всегда освободится при стандартном деструкторе. Итого: для правильного поведения не нужно помнить как минимум две вещи.

Matwey
20.02.2018
08:06:26
Так я и говорю о том, как я делаю wrapper-класс. Вместо unique_ptr<myhandle, decltype(&free_resource) x{new_resource(..), &free_resouce} хочу чтобы было так unique_ptr<myhandle, my_deleter<&free_resource> > x(new_resource(..));

Только my_deleter нужно занести в STL, чтобы каждый раз его не переизобретать

где my_deleter тривиально реализуется - ничего не хранит, а в функции operator()(T*) зовет шаблонный аргумент указателя на функцию.

Ilia
20.02.2018
08:08:41
Так я и говорю о том, как я делаю wrapper-класс. Вместо unique_ptr<myhandle, decltype(&free_resource) x{new_resource(..), &free_resouce} хочу чтобы было так unique_ptr<myhandle, my_deleter<&free_resource> > x(new_resource(..));
Так если ты делаешь уже класс, то делитером может быть либо стандартный деструктор, либо operator delete твоего класса

Ilia
20.02.2018
08:09:38
Наоборот, чтобы ты НЕ ЗАБЫЛ написать его однажды. ОН же автоматом будет вызываться, в отличие от....

Matwey
20.02.2018
08:10:05
В отличии от чего?

Matwey
20.02.2018
08:10:19
unique_ptr то как раз автоматом всё почистит

Berkus
20.02.2018
08:10:27
Охуенная штука во враппер классе

Ilia
20.02.2018
08:10:39
В отличии от чего?
Йо, чё тупишь? В отличие от указания делитора в unique_ptr

Berkus
20.02.2018
08:10:40
unique_ptr то как раз автоматом всё почистит
Так у тебя к нему претензии

Которые решаются враппер классом легко

И там еще ништяков добавляется

Страница 1770 из 2477