История изменений
Исправление dissident, (текущая версия) :
То, что этот код в книге Саттера не доказывает, что в нём нет UB.
Кстати код в книге Саттера имеет T* v_ как первое поле в StackImpl.
Не означает ли это что alignment v_ при
v_ = operator new (sizeof(T)*size)
PS Нет, я еще не понял всего про alignment vs operator new, поэтому просто вежливо спрашиваю. Если я правильно понял, то если тот, кто пишет код, обеспечит то что память будет aligned под то, что там хранится, то UB не будет.
PPS Зачем тогда вообще в C++98 placement new если нету alignof? Значит способ обеспечить alignment у operator new(size_t) без alignof есть (был?)
Исправление dissident, :
То, что этот код в книге Саттера не доказывает, что в нём нет UB.
Кстати код в книге Саттера имеет T* v_ как первое поле в StackImpl.
Не означает ли это что alignment v_ при
v_ = operator new (sizeof(T)*size)
PS Нет, я еще не понял всего про alignment vs operator new, поэтому просто вежливо спрашиваю. Если я правильно понял, то если тот, кто пишет код, обеспечит то что память будет aligned, то UB не будет.
PPS Зачем тогда вообще в C++98 placement new если нету alignof? Значит способ обеспечить alignment у operator new(size_t) без alignof есть (был?)
Исправление dissident, :
То, что этот код в книге Саттера не доказывает, что в нём нет UB.
Кстати код в книге Саттера имеет T* v как первое поле в StackImpl.
Не означает ли это что alignment v при
v = operator new (sizeof(T)*size)
PS Нет, я еще не понял всего про alignment vs operator new, поэтому просто вежливо спрашиваю. Если я правильно понял, то если тот, кто пишет код, обеспечит то что память будет aligned, то UB не будет.
PPS Зачем тогда вообще в C++98 placement new если нету alignof? Значит способ обеспечить alignment у operator new(size_t) без alignof есть (был?)
Исходная версия dissident, :
То, что этот код в книге Саттера не доказывает, что в нём нет UB.
Кстати код в книге Саттера имеет T* v как первое поле в StackImpl.
Не означает ли это что alignment v при
v = operator new (sizeof(T)*size)
PS Нет, я еще не понял всего про alignment vs operator new, поэтому просто вежливо спрашиваю. Если я правильно понял, то если тот, кто пишет код, обеспечит то что память будет aligned, то UB не будет.
PPS Зачем тогда вообще в C++98 placement new если нету alignof? Значит способ обеспечить alignment без alignof есть (был?)