Đi hoàn toàn bởi MSDN tài liệu:
"Giả Không răng cưa" (/Oa) và các tùy chọn liên quan có đã bị xóa trong Visual Studio 2008.
__declspec (restrict) và __declspec (noalias) đã được thêm vào (2003 hoặc sớm hơn, xem thêm Optimization best practices)
Từ đó tôi sẽ kết luận rằng trình biên dịch/tối ưu hóa theo mặc định thừa nhận răng cưa theo quy định C++ (khoảng, con trỏ cùng loại có thể trỏ đến cùng một bộ nhớ). Điều này có vẻ là một động thái hợp lý trong việc tránh các lỗi do một lựa chọn quá mức/Oa quá mức toàn cầu.
Tôi sẽ tiếp tục giả định rằng việc tạo mã thời gian liên kết làm tăng phạm vi mà không thể tạo bí danh.
Tham chiếu không phải MSDN tốt nhất tôi có thể tìm thấy là: VC++ team blog. Tuy nhiên, điều này chỉ cho thấy rằng trình biên dịch không dành một chút thời gian để phân tích bí danh. Có thể video liên kết Channel9 cung cấp một số thông tin chi tiết.
(Một số người đã có may mắn với hỏi để biết thêm trong VC++ comments. Gợi ý gợi ý ...)
[chỉnh sửa] Tôi không biết nếu Phoenix đã kết thúc trong VS2010, các video nói về bí danh 6:00, nhưng không có gì ngoạn mục.
MSDN khó khăn. Bạn nên sử dụng Google với trang web: msdn.com hơn là sử dụng chính tìm kiếm MSDN. –
Tôi cho rằng họ sẽ mang theo càng nhiều vũ khí càng tốt, vì kết quả bí danh vô hiệu hóa rất nhiều tối ưu hóa. Vì vậy, tôi sẽ không mong đợi câu trả lời là đơn giản. Ngay cả khi họ sử dụng phân tích "điểm", có rất nhiều biến thể: nhạy cảm với dòng chảy/nhạy cảm, nhạy cảm với ngữ cảnh hay không, nhạy cảm với feild hoặc không, các thủ tục nội bộ, interprocedure, đơn vị biên dịch chéo, ... câu hỏi? –
@Ira Baxter: Đó chính xác là những gì tôi đang cố gắng tìm ra. Nó có nhạy cảm với dòng chảy, ngữ cảnh, trường, đối tượng, vv không? Có gì đằng sau nó: Am đang xem xét tài liệu của tôi cho luận án phd của tôi, và tôi nhận ra tôi biết câu trả lời (hoặc cách tìm câu trả lời) cho gcc, LLVM và một vài trình biên dịch khác, nhưng tôi không thể tìm thấy nó cho Visual C++ . –