
Ilia
21.02.2018
09:08:39
А, так ё...

Max
21.02.2018
09:09:05

Александр
21.02.2018
09:09:19

Ilia
21.02.2018
09:09:31
Всё ясно. Нельзя там делать через make_shared.
Класс Singleton родительский является friend. А функция make_shared — НЕТ.

Google

Radio
21.02.2018
09:09:34

Max
21.02.2018
09:09:36
никак
Переписать и не ибаццо с шаблонами?

Александр
21.02.2018
09:10:05

Ilia
21.02.2018
09:10:34
Кстати, shared_ptr там нафиг не нужен и также это всё ещё к тому же и не потокобезопасно.
Так что надо инстанст создать локально в функции по значению, и вернуть на него ссылку.

Александр
21.02.2018
09:10:37
вообще странно, что std не предоставляет какого-нибудь класса shared_creator, которому можно прописать friend class shared_creator

Max
21.02.2018
09:11:21

Ilia
21.02.2018
09:11:39
static T& get()
{
static T s_instance;
return s_instance;
}

Max
21.02.2018
09:11:55
Тогда просто создать через new и все?

Alexander
21.02.2018
09:11:56
всё равно я придерживаюсь мнения, что нужно давать пользователю возможность выбирать размер буфера на стеке

Ilia
21.02.2018
09:12:12

Alexander
21.02.2018
09:13:00
только вот не совсем понятно, что делать в случае: число стало больше буфера на стеке, аллоцируем память на куче. Потом число уменьшилось и снова вмещается на стек. и что - обратно будем копировать на стек уже?

Max
21.02.2018
09:13:06
Я ж написал
Так оно так и работат, но хочу сменить без статик переменной, т.к. с ней тесты не напишешь, потому что мне нужно на тест удалять и создавать его по своему

Google

Ilia
21.02.2018
09:14:17

Alexander
21.02.2018
09:14:42
а если у нас кейсы что постоянно на грани, то постоянно прыгать туда-сюда не хочется
если SSO, то такие прыжки могут иметь место и их не исправить так просто. Если указываем размер, то просто меняем размер буфера на стеке

Pavel
21.02.2018
09:19:39

Alexander
21.02.2018
09:20:29
но мне кажется, что там через кучу ничего не гоняется
надо глянуть, что там под капотом у cpp_int

Radio
21.02.2018
09:23:23
Тогда просто создать через new и все?
тут развернуто об этом:
https://stackoverflow.com/questions/8147027/how-do-i-call-stdmake-shared-on-a-class-with-only-protected-or-private-const/8147213#8147213
спасибо за тему =)

Berkus
21.02.2018
10:23:14

Ilia
21.02.2018
10:26:28
Ну а занафига там shared?

Berkus
21.02.2018
10:29:49
понятно что для синглтона шаред не особо нужен

Ilia
21.02.2018
10:32:09

Berkus
21.02.2018
10:32:27
ну может он удалябельный синглтон мутит
чудо из чудес

Max
21.02.2018
10:33:12

Berkus
21.02.2018
10:33:27

Ilia
21.02.2018
10:33:44
Resurrectable singleton?
Zomby Singleton ?

Google

Max
21.02.2018
10:33:46
КОГО?
Синглтон, который я использую

Ilia
21.02.2018
10:34:20
Тебе какая разница какой инстанс класса в тесты запихать?
Создай другой

Berkus
21.02.2018
10:34:29

Max
21.02.2018
10:35:08

Berkus
21.02.2018
10:35:22

Radio
21.02.2018
10:36:35

Ilia
21.02.2018
10:36:44

mefest
21.02.2018
10:38:22

Pavel
21.02.2018
10:40:21
а можно я ещё раз скажу, что синглтон это клёвый способ рулить порядком инициализации статических объектов?

Ilia
21.02.2018
10:40:48
А тебе часто надо им рулить?

Berkus
21.02.2018
10:40:59

Max
21.02.2018
10:41:17

Berkus
21.02.2018
10:41:28

Anatoly
21.02.2018
10:41:52

Pavel
21.02.2018
10:43:15

Antony
21.02.2018
10:43:28

Ilia
21.02.2018
10:44:23

Pavel
21.02.2018
10:44:37

Ilia
21.02.2018
10:45:42

Google

Antony
21.02.2018
10:46:20
ловко. но, нет. я в это не верю.
Есть еще одна фишка - константная инициализация. Пометьте конструкторы ваших синглтонных объектов как constexpr (если это возможно, при этом тривиальный деструктор не обязателен) и ваша программа загрузится в память с уже проинициализированными классами

Berkus
21.02.2018
10:50:25

Pavel
21.02.2018
10:50:52

Ilia
21.02.2018
10:51:11
Вообще, мне кажется эта тема не имеет общего для всех приложений фундамента.
Слишком всё индивидуально. Так что мне кажется серьёзно обсуждать нет смысла.

Anatoly
21.02.2018
10:51:27

Pavel
21.02.2018
10:52:19

Admin
ERROR: S client not available

Pavel
21.02.2018
10:52:51
шаблоны рвать вообще полезно. ну, по жизни.

Anatoly
21.02.2018
10:52:57
коряво спросил. в одиночку?

Pavel
21.02.2018
10:53:27
какая разница?

Berkus
21.02.2018
10:53:43

Pavel
21.02.2018
10:54:01
когда в двоем смотришь на синглтон в приложении, то он превращается в чтото другое?

Berkus
21.02.2018
10:54:32
когда школу закончишь, поймешь что синглтоны не нужны

39170
21.02.2018
10:54:34
/vzhuh@FailsBot

Дед Пегас
21.02.2018
10:54:48
Самый смак это покрывать тестами синглтон.

Max
21.02.2018
10:55:05
назови хотя бы один?
Например мой. Есть говно-архитектура, хуже чем ее отсутсвие. Тебе нужен обьект для имплементации некоторой функциональности, которую надо было на вчера. На существующей говно-архитектуре тебе его использовать в классе 1 и классе 10, но они связаны по цепочке класс 1 - класс 2 - ... - класс 10. Лучше пихать твой обьект по всей цепочке 1 - 10? Или все же заюзать синглтон?
Знатно я на вентилятор закинул...

Google

Дед Пегас
21.02.2018
10:55:35
Пихать лучше.
Время рефакторинга!

Alex Фэils?︙
21.02.2018
10:55:48

Ilia
21.02.2018
10:55:49

Anatoly
21.02.2018
10:56:31

FailsBot
21.02.2018
10:57:18
∧_∧
( ・ω・。)つ━☆・*。
⊂ ノ ・゜+.
しーJ °。+ *´¨)
.· ´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·'* ☆

Ilia
21.02.2018
10:58:35

Дед Пегас
21.02.2018
10:59:20
кек

Alex Фэils?︙
21.02.2018
10:59:58

Anatoly
21.02.2018
11:00:22

Ilia
21.02.2018
11:00:42
Мне не нужны никакие книги, я и так профессионал!

Anatoly
21.02.2018
11:01:49

Pavel
21.02.2018
11:01:50
а если при пропихивании ктонибудь забыл написать & и оно теперь падает непонятно где?

Anatoly
21.02.2018
11:02:18

Дед Пегас
21.02.2018
11:02:49

Pavel
21.02.2018
11:03:18
однако

Дед Пегас
21.02.2018
11:03:25
И никто ничо не забудет. Если не будет как мудак передавать объект, обёрнутый в шаред, по ссылке.

Radio
21.02.2018
11:04:46

Дед Пегас
21.02.2018
11:06:29

Anatoly
21.02.2018
11:07:04
надо признать, хороший обед вышел :)

Radio
21.02.2018
11:07:34