1

私が理解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トリガーを使用すると、「制限にはポインターが必要です」というエラーが発生します。では、これらをどのように組み合わせることができますか?


コメントにあるように、restrictC++ の標準キーワードではありません。#define restrict __restrict__プロジェクトに、GCC で動作する行があることを忘れていました。

4

1 に答える 1