2012-10-09 23 views
10

Mam dwa pytania:C11/C++ 11 Pamięć modelu

  1. chciałbym wiedzieć, czy standardy dla C++ 11 i C11 będą dzielić same model pamięci widowisko. Czytałem, że tak jest, że w rzeczywistości C11 "dziedziczy" model pamięci C++ 11 (z jakichkolwiek historycznych powodów, z których to drugie zdarzyło się albo pierwsze, albo w tym samym czasie/z tymi samymi ludźmi, choć myślę, że Boehm, który jest Facet C++ przede wszystkim miał dużo do powiedzenia.), Ale chciałbym poprosić kogoś o więcej wiedzy.

  2. Moje następne pytanie brzmi: czy GCC kiedykolwiek w ogóle wdroży ten model pamięci? Nie widziałem tej mapy drogowej i zastanawiałem się, czy ktoś ma "szufelkę".

+0

jako komentarz, ponieważ nie pytałeś o to bezpośrednio: Myślę, że najnowsza wersja clang już implementuje te modele. –

+0

@JensGustedt: Dzięki, tak, chciałem również wiedzieć o klangu, ale myślałem, że go pcham, więc próbowałem skupić się na tym pytaniu. –

+0

@JensGustedt: Wygląda na to, że nie, nie jest jeszcze zaimplementowany, przynajmniej zgodnie z http://clang.llvm.org/cxx_status.html –

Odpowiedz

13
  1. modelu pamięci został opracowany dla C++ 11 i przyjmowane przez C11. Lawrence Crowl bardzo się starał, aby interfejs operacji atomowych był jak najbliżej. W sprawę zaangażowało się sporo osób, ale masz rację, że Hans Boehm był jednym z nich.

  2. GCC obecnie (4.7) implementuje rozsądne przybliżenie modelu pamięci. Z pewnością na tyle blisko, że większość programów nie będzie w stanie odróżnić. Jestem prawie pewien, że pełna zgodność jest zgodna z ich planem, ale nie znam harmonogramu, ponieważ nie jestem zaangażowany.