поясните по угару, чем intrusive от shared pointer'а отличается?
В интрузиве счетчик ссылок вынесен в класс, которым инстанциируется интрузив.
ооок, т.е. различие только в том что счётчик становится зависим от типа хранимого указателя?
> зависим от типаШто.
Требуется, чтобы в классе, который ты хранить будешь, была пара функций, отвечающая за счетчик, только и всего.
т.е. чтобы в интрузив поинтере хранить класс, я должен его унаследовать от типа счётчика. зачем такие костыли?
Нахуя? Поинтер же темплейтный, там происходит что-то типа T t; t.f ();Какое, блять, наследование?
совсем нихуя не понял :(
вот я захотел интрузивно похранить int, где должны быть эти «пара функций, отвечающая за счетчик»?
Внутри инта. Скаляры так, очевидно, хранить нельзя.
Ну и вообще встроенные типы.
т.е. произвольных класс интрузивно не похранишь. ясно. но нахуй тогда оно так нужно?
А вдруг тебе нужна ОСОБАЯ ЛОГИКА?
в этом случае я передам в shared_ptr свой собственный тип счётчика
В интрузиве счетчик ссылок вынесен в класс, которым инстанциируется интрузив.
ооок, т.е. различие только в том что счётчик становится зависим от типа хранимого указателя?
> зависим от типа
Што.
Требуется, чтобы в классе, который ты хранить будешь, была пара функций, отвечающая за счетчик, только и всего.
т.е. чтобы в интрузив поинтере хранить класс, я должен его унаследовать от типа счётчика. зачем такие костыли?
Нахуя? Поинтер же темплейтный, там происходит что-то типа T t; t.f ();
Какое, блять, наследование?
совсем нихуя не понял :(
вот я захотел интрузивно похранить int, где должны быть эти «пара функций, отвечающая за счетчик»?
Внутри инта. Скаляры так, очевидно, хранить нельзя.
Ну и вообще встроенные типы.
т.е. произвольных класс интрузивно не похранишь. ясно. но нахуй тогда оно так нужно?
А вдруг тебе нужна ОСОБАЯ ЛОГИКА?
в этом случае я передам в shared_ptr свой собственный тип счётчика