D
dễ dàng giao tiếp với C
.Khả năng tương thích liên kết giữa C++ và D
D
cũng dễ dàng giao tiếp với C++
, nhưng (và lớn) nhưng C++
cần phải vô cùng tầm thường. Mã này không thể sử dụng:
- namespace
- mẫu
- đa kế thừa
- hỗn hợp ảo với các phương pháp không ảo
- hơn?
Tôi hoàn toàn hiểu được hạn chế kế thừa. Phần còn lại tuy nhiên, cảm thấy như những hạn chế nhân tạo. Bây giờ tôi không muốn có thể sử dụng trực tiếp std::vector<T>
, nhưng tôi thực sự muốn có thể liên kết với std::vector<int>
dưới dạng mẫu bên ngoài.
C++ interfacing page có nhận xét đặc biệt đáng buồn này.
D mẫu có ít điểm chung với C++ mẫu, và nó là rất khó xảy ra rằng bất kỳ loại phương pháp hợp lý thể được tìm thấy để diễn tả C++ mẫu trong một cách liên kết tương thích với D.
Điều này có nghĩa rằng STL C++ và C++ Boost, có thể sẽ không bao giờ có thể truy cập từ D.
phải thừa nhận rằng tôi sẽ probabl y không bao giờ cần std::vector
khi mã hóa trong D
, nhưng tôi muốn sử dụng QT hoặc boost.
Vì vậy, thỏa thuận là gì. Tại sao lại khó thể hiện các lớp học C++
không quan trọng trong D? Nó sẽ không có giá trị nó để thêm một số chú thích đặc biệt hoặc một cái gì đó để thể hiện ít nhất là không gian tên?
Cập nhật: "D đã hỗ trợ namespace trong các tác phẩm" từ Walter Bright.
Nó thậm chí không được hỗ trợ bởi bất kỳ trình biên dịch C++ chính thống nào. Tại sao bạn mong đợi một ngôn ngữ khác để hỗ trợ nó? –
@Hans, ý bạn là gì? –
Tôi nghĩ ý anh ấy là "Liên kết tới C++ được tạo bởi trình biên dịch X" thậm chí không được hỗ trợ bởi {trình biên dịch C++ chính thống} \ X. – FeepingCreature