ATTRIBUTS

Salut ce forum apprends les bases du c++

Moderator: Rick

Post Reply
Hydraxx
Site Admin
Posts: 114
Joined: Mon Jan 12, 2026 4:04 pm
Location: France
Contact:

ATTRIBUTS

Post by Hydraxx »

ATTRIBUTS

À QUOI ÇA SERT ?

Les attributs permettent d’ajouter des informations au compilateur sans changer directement la logique principale du programme.

Syntaxe :

Code: Select all

[[attribut]]

1. [[nodiscard]]

Code: Select all

[[nodiscard]]
int openFile();
Si tu fais :

Code: Select all

openFile();
le compilateur peut avertir que tu ignores le résultat.

Pourquoi ?

Parce que la valeur retournée est probablement importante.

Très utile pour :
  • codes d’erreur ;
  • handles ;
  • résultats de validation.

2. [[maybe_unused]]

Code: Select all

[[maybe_unused]]
int debugValue{};
Cela signifie :

"Je sais que cette variable peut ne pas être utilisée."

Pratique avec du code conditionnel de debug.


3. [[noreturn]]

Code: Select all

[[noreturn]]
void fatal()
{
    std::terminate();
}
La fonction ne revient jamais normalement.

Le compilateur peut optimiser le code autour de cette information.


4. [[deprecated]]

Code: Select all

[[deprecated("Utiliser newApi()")]]
void oldApi();
Lorsqu’un développeur appelle oldApi(), le compilateur peut générer un warning.


5. [[likely]] / [[unlikely]]

Code: Select all

if (success) [[likely]]
{
}
Cela donne une indication au compilateur sur le chemin supposé fréquent.

Ce n’est pas une garantie.


6. [[assume]]

Code: Select all

[[assume(size > 0)]];
Cela indique au compilateur qu’il peut considérer l’expression comme vraie.

Danger :

Si elle est fausse en réalité, le compilateur peut avoir optimisé en supposant qu’elle ne l’était jamais.

Il faut donc l’utiliser avec beaucoup de prudence.


À RETENIR


Les attributs expriment une intention :
  • résultat à ne pas ignorer ;
  • fonction qui ne retourne pas ;
  • code obsolète ;
  • branche probable ;
  • hypothèse d’optimisation.

Return to “Bases du C++”

Who is online

Users browsing this forum: No registered users and 1 guest