Эквивалентен ли вызов обычного оператора new вызову функции allocate стандартного аллокатора +placement new?

Эквивалентен ли вызов обычного оператора new вызову функции allocate стандартного аллокатора +placement new? Т.е меня интересует, не будет ли

std::allocator<int> alloc;
int* test = alloc.allocate(1)
test = new(test) int(5)

менее эффективно, нежали

int* test = new int(5)

Будет ли память так же аллоцировтаься блоками, или в случае использования аллокатора в ручную, alloc.allocate(1) будет восприниматься как аллоцировтаь только 4 байта? Так же меня интересует, будет ли вызова deallocate + ручной вызов деструктора эквивалентен вызову оператора delete?


Ответы (0 шт):