mà khônginline
, bạn sẽ có khả năng kết thúc với nhiều khẩu hiệu, nếu hàm được khai báo ở namespace hay toàn cầu phạm vi (kết quả trong mối liên kết lỗi). Tuy nhiên, hầu hết các trình biên dịch ngầm khai báo phương thức là nội tuyến (-fno-default-inline
sẽ vô hiệu hóa mặc định đó trên GCC).
nếu bạn khai báo hàm là nội dòng, trình biên dịch có thể mong đợi để xem định nghĩa của nó trong bản dịch. do đó, bạn nên bảo lưu nó cho những lần định nghĩa được hiển thị.
ở cấp cao hơn: định nghĩa trong khai báo lớp thường hiển thị với nhiều bản dịch hơn. điều này có thể dẫn đến tối ưu hóa tốt hơn và có thể dẫn đến tăng thời gian biên dịch.
trừ khi tối ưu hóa tay và biên dịch nhanh đều quan trọng, việc sử dụng từ khóa trong khai báo lớp là điều không bình thường trong những ngày này.
Bạn có ý nghĩa gì với "TU" và "ODR"? – WiSaGaN
@WiSaGaN: TU = Đơn vị dịch: khoảng, tệp nguồn được xử lý trước. ODR = Một quy tắc định nghĩa: yêu cầu tất cả các định nghĩa của một hàm/lớp phải giống hệt nhau, ở cấp độ ký tự, qua các TU. –
Ở cấp độ ký tự hoặc ở cấp mã thông báo? – fredoverflow