Jakie jest podstawowe zastosowanie funkcji aligned_storage?

Jakie jest podstawowe użycie std :: tr1 :: aligned_storage? Czy można go wykorzystać jako pamięć automatyczną dla typu danych Foo takiego jak poniżej?

   struct Foo{...};
   std::tr1::aligned_storage<sizeof(Foo)
        ,std::tr1::alignment_of<Foo>::value >::type buf;
   Foo* f = new (reinterpret_cast<void*>(&buf)) Foo();
   f->~Foo();

Jeśli tak, co z przechowywaniem wielu plików Foo w buf buf like,

    std::tr1::aligned_storage<5*sizeof(Foo)
            ,std::tr1::alignment_of<Foo>::value >::type buf;
    Foo* p = reinterpret_cast<Foo*>(&buf);
    for(int i = 0; i!= 5; ++i,++p)
    {
        Foo* f = new (p) Foo();
    }

Czy są to ważne programy? Czy jest jakiś inny przypadek użycia? Wyszukiwarka Google daje tylko dokumentację dotyczącą funkcji aligned_storage, ale bardzo mało o jej wykorzystaniu.

questionAnswers(1)

yourAnswerToTheQuestion