2012-10-09 41 views
10

Tôi có hai câu hỏi:C11/C++ 11 Memory Model

  1. Tôi muốn biết nếu các tiêu chuẩn cho C++ 11 và C11 sẽ chia sẻ cùng số kỹ thuật mô hình bộ nhớ. Tôi đọc rằng điều này là như vậy, trong thực tế C11 là "kế thừa" mô hình bộ nhớ C++ 11 (vì bất kỳ lý do lịch sử nào sau này xảy ra đầu tiên hoặc cùng một lúc/với cùng một người, mặc dù tôi nghĩ Boehm, C++ anh chàng chủ yếu, có rất nhiều điều để nói.), Nhưng tôi muốn đảm bảo hỏi ai đó có kiến ​​thức hơn.

  2. Câu hỏi tiếp theo của tôi là: liệu GCC có bao giờ triển khai mô hình bộ nhớ này không? Tôi đã không nhìn thấy lộ trình này, và đã tự hỏi nếu ai đó có một "muỗng".

+0

làm nhận xét vì bạn không hỏi trực tiếp về điều này: Tôi nghĩ phiên bản mới nhất của clang đã triển khai các mô hình này. –

+0

@ JensGustedt: Cảm ơn, vâng, tôi cũng muốn biết về tiếng kêu, nhưng tôi nghĩ tôi đã đẩy nó, vì vậy tôi đã cố gắng tập trung vào câu hỏi. –

+0

@ JensGustedt: Có vẻ như không, nó chưa được triển khai, ít nhất là theo http://clang.llvm.org/cxx_status.html –

Trả lời

13
  1. Mô hình bộ nhớ đã được phát triển cho C++ 11, và được thông qua bởi C11. Lawrence Crowl đã làm rất nhiều công việc để đảm bảo rằng giao diện cho các hoạt động nguyên tử là càng gần càng tốt. Có khá nhiều người tham gia, nhưng bạn đúng là Hans Boehm là một trong số họ.

  2. GCC hiện tại (4.7) thực hiện một phép tính gần đúng hợp lý của mô hình bộ nhớ. Chắc chắn đủ gần mà hầu hết các chương trình sẽ không thể cho biết sự khác biệt. Tôi khá chắc chắn rằng sự phù hợp hoàn toàn nằm trong kế hoạch của họ, nhưng không biết thời gian biểu, vì tôi không tham gia.