据我了解restrict
,它将指针标记为对函数中特定数据的唯一引用。我通常看到它在函数参数中使用,但这似乎也是有益的:
char *restrict a = get_some_string( );
char *restrict b = get_some_other_string( );
(所以编译器知道改变a
永远不会改变b
,并且可以做额外的优化)。
如果get_some_string
返回一个很复杂的类型,似乎最好使用auto
关键字;
auto a = get_some_string( );
auto b = get_some_other_string( );
但是使用auto restrict
会触发错误“限制需要指针”。那么,我该如何结合这些呢?
如评论中所述,restrict
不是 C++ 中的标准关键字;我忘记了#define restrict __restrict__
我的项目中有一条线,它适用于 GCC。