Không có từ khóa restrict trong C++ chuẩn. Danh sách từ khóa C++ nằm ở mục 2.11/1 của chuẩn ngôn ngữ. restrict là từ khóa của C99, không thuộc C++.
Trong C (C99)
Con trỏ được hạn định restrict là lời hứa với trình biên dịch rằng: trong phạm vi của con trỏ đó, đối tượng được trỏ đến chỉ được truy cập qua con trỏ đó (và các bản sao của nó). Điều này giúp trình biên dịch tối ưu hóa mạnh mẽ hơn.
Trong C++
- Các trình biên dịch C++ (GCC, Clang, MSVC) hỗ trợ
__restricthoặc__restrict__như extension cho mục đích tối ưu. - Điều này không phải một phần của chuẩn C++ chính thức.
Thay thế trong C++: Sử dụng std::unique_ptr, std::span (C++20), hoặc thiết kế API tránh aliasing thay vì dựa vào từ khóa non-standard.