2017-05-08 2 views
0

Devons-nous utiliser le mot-clé restrict dans la déclaration et la définition des méthodes ou suffit-il de l'utiliser uniquement dans les fichiers de déclaration en code C++? Quelle est la bonne façon de l'utiliser?Limiter l'utilisation dans l'en-tête et la source

Code compile même sans restreindre utilisation dans la déclaration.

Par exemple

Foo.h 
class Foo 
{ 
    public: 
    void Bar(int* __restrict__ in, int* __restrict__ out); 
} 


Foo.cpp 

void Foo::Bar(int* __restrict__ in, int* __restrict__ out) 
{ 
} 
+3

[** "Comme avec tous les qualificatifs des paramètres les plus externes,' __restrict__' est ignoré dans l'appariement de définition de la fonction. Cela signifie que vous avez seulement besoin pour spécifier '__restrict__' dans une définition de fonction, plutôt que dans un prototype de fonction." **] (https://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html) – StoryTeller

Répondre

0

Accepter réponse de @StoryTeller

As with all outermost parameter qualifiers, __restrict__ is ignored in 
function definition matching. This means you only need to specify __restrict__ in 
a function definition, rather than in a function prototype as well." – StoryTeller 
May 8 at 10:25