Theo mặc định, trong C++, một hàm tạo đối số đơn có thể được sử dụng như một toán tử chuyển đổi ngầm định. Điều này có thể bị triệt tiêu bằng cách đánh dấu hàm khởi tạo là tường minh.Buộc các hàm tạo đối số đơn phải rõ ràng trong C++?
Tôi muốn đặt "rõ ràng" là mặc định, để trình biên dịch không thể sử dụng âm thầm các hàm tạo này để chuyển đổi.
Có cách nào để thực hiện điều này trong C++ chuẩn không? Không có điều đó, là có một pragma (hoặc tương tự) mà sẽ làm việc trong Microsoft C + + để làm điều này? Điều gì về g + + (chúng tôi không sử dụng nó, nhưng nó có thể là thông tin hữu ích)?
Thành thật mà nói, chúng tôi không quá bận tâm về tính di động; chúng tôi là một cửa hàng Windows. Điều đó không có nghĩa là chúng ta không quan tâm; nó có nghĩa là, một khi bạn đã chọn cho khung công tác Win32 GUI, hỗ trợ Linux hoặc OSX là học tập. –
Tính di động không chỉ là vấn đề nền tảng. Có các trình biên dịch khác có sẵn cho các cửa sổ, ví dụ. Intel, MinGW. Ngoài ra còn có khả năng tương thích ngược trong các phiên bản mới của trình biên dịch Microsofts. Sự bảo đảm duy nhất bạn có là Ủy ban C++ suy nghĩ rất cẩn thận trước khi phá vỡ mã C++ hiện có. –
Chỉ cần làm rõ, tôi không gợi ý rằng Microsoft sẽ phá vỡ mã người mà không suy nghĩ, tuy nhiên, họ có những áp lực khác nhau đối với ủy ban của tiêu chuẩn. –