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

Maks
20.02.2018
06:33:01

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

Ender
20.02.2018
06:33:07

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

Maks
20.02.2018
06:35:28

Oleg
20.02.2018
06:37:52

Maks
20.02.2018
06:38:11

Berkus
20.02.2018
06:39:58

Ender
20.02.2018
06:40:59
Not ZVYOZDO4KA

Maks
20.02.2018
06:41:53

Vladislav
20.02.2018
06:42:18

Google

Maks
20.02.2018
06:42:37

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

Vladislav
20.02.2018
07:00:41

Berkus
20.02.2018
07:02:28

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

Berkus
20.02.2018
07:03:22

Ilia
20.02.2018
07:05:25

Ender
20.02.2018
07:05:42

Дед Пегас
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

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

Oleg
20.02.2018
07:11:08

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

Berkus
20.02.2018
07:14:51

Admin
ERROR: S client not available

Anatoly
20.02.2018
07:17:47

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

Matwey
20.02.2018
07:52:06
Хочу более прямой unique_ptr
Сейчас не очень удобно использовать указатель на функцию в качестве Deleter-а
Который и так уже является частью типа
Можно было бы туда просто запихать указатель на функицю (а он может быть аргументом шаблона) и избежать использования еще одного указателя под Deleter и необходимости безумной инициализации каждый раз одним и тем же значением
Может конечно я им как-то не так пользуюсь
Хотя, я понял
Нужно сделать обертку дополнительную
Вокруг указателя

Ilia
20.02.2018
07:59:55

Google

Matwey
20.02.2018
08:00:12

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 и там хранить. Потому-что класс, который его инкапсулирует, сразу становится некопируемым автоматически, ресурс всегда освободится при стандартном деструкторе. Итого: для правильного поведения не нужно помнить как минимум две вещи.

Ilia
20.02.2018
08:05:11

Anatoly
20.02.2018
08:05:22
//
// вспомогательный тип для скопгарда обеспечивающего управление HINTERNET хендлерами
//
typedef std::unique_ptr<typename std::remove_pointer<HINTERNET>::type, void(*)(HINTERNET)> InternetHandlerHolder;
по типу?


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

Matwey
20.02.2018
08:09:04

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

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

Berkus
20.02.2018
08:10:08

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

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

Ilia
20.02.2018
08:10:39

Berkus
20.02.2018
08:10:40
Которые решаются враппер классом легко
И там еще ништяков добавляется