Size: a a a

2020 May 04

M

Mr_ChAI in pro.cxx
Alex
это именно то, что меня убивает в API аллокаторов и рубит на корню мои идеи по их применению
Ну а как он работает? Он же сами элементы не аллокатит
источник

A

Alex in pro.cxx
Constantine Drozdov
int (x);
разберите значение оператора в случаях, если
P.S. кажется, я ошибся с примером, но такие конструкции точно существуют
Не понял идею упражнения. Чем шаблонный метод от не шаблонного отличается? Пусть правила поиска буду одинаковы в любых мембер-функциях независимо от шаблонности их самих или содержащего их класса.
с кодом int (x) ; проблемы не вижу, компилятору только нужно выяснить, объявлен ли уже где-то в скоупе идентификатор х, и если да - это тип или объект.
источник

CD

Constantine Drozdov in pro.cxx
Mr_ChAI
Зачем std::list принимает в шаблон класс аллокатора для типа T? Он же ноды должен аллокатить
А что от этого сломается?
источник

A

Alex in pro.cxx
Mr_ChAI
Ну а как он работает? Он же сами элементы не аллокатит
через глубокую задницу работает, иначе не назовёшь.
У аллокатора есть замечательный метод rebind
источник

CD

Constantine Drozdov in pro.cxx
Alex
Не понял идею упражнения. Чем шаблонный метод от не шаблонного отличается? Пусть правила поиска буду одинаковы в любых мембер-функциях независимо от шаблонности их самих или содержащего их класса.
с кодом int (x) ; проблемы не вижу, компилятору только нужно выяснить, объявлен ли уже где-то в скоупе идентификатор х, и если да - это тип или объект.
В каком скоупе? В dependent?
источник

A

Alex in pro.cxx
Constantine Drozdov
В каком скоупе? В dependent?
да, включая члены данных класса и его предков, как обычно
источник

M

Mr_ChAI in pro.cxx
Alex
через глубокую задницу работает, иначе не назовёшь.
У аллокатора есть замечательный метод rebind
(deprecated in C++17)(removed in C++20) мне нравится
источник

CD

Constantine Drozdov in pro.cxx
Alex
да, включая члены данных класса и его предков, как обычно
template <typename T>
struct Some : Base<T> {
  int f() { x; }
};
что такое x?
источник

AT

Andrew Titov in pro.cxx
Mr_ChAI
(deprecated in C++17)(removed in C++20) мне нравится
std::allocator_traits
источник

A

Alex in pro.cxx
Constantine Drozdov
template <typename T>
struct Some : Base<T> {
  int f() { x; }
};
что такое x?
пусть выясняет, у него ж есть вся информация при инстациировании
источник

CD

Constantine Drozdov in pro.cxx
Alex
пусть выясняет, у него ж есть вся информация при инстациировании
а чтение производится до инстанцирования
источник

АК

Александр Караев... in pro.cxx
Alex
пусть выясняет, у него ж есть вся информация при инстациировании
Он должен знать это ещё до инстанцирования
источник

A

Alex in pro.cxx
пусть оставляет на вторую фазу
источник

CD

Constantine Drozdov in pro.cxx
Alex
пусть оставляет на вторую фазу
а если противоречит с первой?
источник

CD

Constantine Drozdov in pro.cxx
добавилась int x(); в глобалке
источник

A

Alex in pro.cxx
первая бессмысленна в таком случае, это не должно приводить к ошибке компиляции
источник

CD

Constantine Drozdov in pro.cxx
Alex
первая бессмысленна в таком случае, это не должно приводить к ошибке компиляции
я правильно понимаю, что вы предлагаете полностью отменить первую фазу?
источник

CD

Constantine Drozdov in pro.cxx
вы же понимаете, зачем она нужна?
источник

SS

Sergey Skvortsov in pro.cxx
Mr_ChAI
Ну а как он работает? Он же сами элементы не аллокатит
В требованиях для аллокатора A<T> есть конструктор копирования от соответствующего A<U> для любого U

См. std::allocator_traits::rebind_alloc
источник

A

Alex in pro.cxx
Constantine Drozdov
я правильно понимаю, что вы предлагаете полностью отменить первую фазу?
Похоже, не нужна, раз MSVC вообще её не выполняет и хорошо себя чувствует
источник