Tôi chỉ tự hỏi tại sao tên mangling không bao giờ được chuẩn hóa theo chuẩn C++. Rõ ràng có các thuật toán mangling tên khác nhau làm tổn thương khả năng tương tác [1] và tôi không thấy bất kỳ lợi thế nào của việc thực hiện nó.Tại sao tên mangling không được chuẩn hóa
Tức là, ngược lại để nói quy ước gọi hoặc kích thước của nguyên thủy bản thân máy không quan tâm hoặc thậm chí biết cách gọi hàm. Vậy tại sao nó không được tiêu chuẩn hóa và tại sao nó vẫn chưa được chuẩn hóa? Các trình biên dịch đã thay đổi các quy tắc trong quá khứ giữa các phiên bản.
[1] tất cả những người xuất khẩu chức năng như extern "C"
nói khối lượng.
Mang tên mang tiêu chuẩn chỉ phục vụ để mang lại cho bạn cảm giác an toàn giả, bởi vì bạn cũng phải chuẩn hóa ABI để có khả năng tương thích phù hợp. Và ủy ban tiêu chuẩn C++ dường như không nằm trong ngành kinh doanh tiêu chuẩn hóa ABI. –
+1 @Raymond - nói dối bản thân về khả năng tương tác là tin xấu khắp nơi. Nó giống như dựa vào hành vi không xác định. Chắc chắn, bạn * nghĩ * nó hoạt động, nhưng nó thực sự không. –
Đúng, đồng ý về C++ ABI sẽ khó hơn nhiều so với C.Hơi ảm đạm: Điều gì chính xác trong câu hỏi này không được coi là phù hợp cho SO bởi 3 người? Sau khi tất cả có khá rõ ràng tồn tại một câu trả lời khác biệt tốt như đã được hiển thị. – Voo