Existe uma diferença (semântica) entre o valor de retorno do posicionamento novo e o valor convertido de seu operando?

Existe uma diferença (semântica) entre o valor de retorno do posicionamento novo e o valor convertido de seu operando?

struct Foo { ... };
char buffer[...];

Foo *a = new(buffer) Foo;
Foo *b = reinterpret_cast<Foo *>(buffer);

Faza eb diferem de alguma maneira?

EDIT: Com base no comentário do DaBler, esta pergunta diz que há uma diferença, se os membros const / reference usaram:Colocação nova e atribuição de classe com membro const

Então, minha pergunta um pouco atualizada:a eb diferem de qualquer forma, seFoo não tem membros const ou referência?

questionAnswers(2)

yourAnswerToTheQuestion