Určení, kdy a kde se má poznámka použít

Pokud je Poznámka podmíněná, může vyžadovat další poznámky k určení tohoto analyzátoru. Například pokud má funkce proměnnou, která může být buď synchronní, nebo asynchronní, funkce se chová takto: v synchronním případě je vždy úspěšné, ale v asynchronním případě hlásí chybu, pokud nemůže být okamžitě úspěšná. Pokud je funkce volána synchronně, kontrola hodnoty výsledku neposkytne analyzátoru kódu žádnou hodnotu, protože by nebyla vrácena. Nicméně pokud je funkce volána asynchronně a výsledek funkce není kontrolován, může dojít k závažné chybě. Tento příklad znázorňuje situaci, ve které byste mohli použít _When_ anotaci popsanou dále v tomto článku – Chcete-li povolit kontrolu.

Strukturální poznámky

Chcete-li určit, kdy a kde se poznámky vztahují, použijte následující strukturální poznámky.

Poznámka Popis
_At_(expr, anno-list) expr je výraz, který vrací lvalue. Poznámky v anno-list jsou aplikovány na objekt, který je pojmenován expr . Pro každou anotaci anno-list v expr je interpretována v předběžné podmínce, pokud je Poznámka interpretována v předběžné podmínce, a v případě, že je Poznámka interpretována v podmínkách post.
_At_buffer_(expr, iter, elem-count, anno-list) expr je výraz, který vrací lvalue. Poznámky v anno-list jsou aplikovány na objekt, který je pojmenován expr . Pro každou anotaci anno-list v expr je interpretována v předběžném stavu, pokud je Poznámka interpretována v předběžné podmínce, a v případě, že je Poznámka interpretována v podmínkách post.

iter je název proměnné, která je vymezena na anotaci (včetně anno-list ). iter má implicitní typ long . Identicky pojmenované proměnné v jakémkoli ohraničujícím oboru jsou ze hodnocení skryté.

elem-count je výraz, který je vyhodnocen jako celé číslo.
_Group_(anno-list) Poznámky v anno-list jsou všechny považované za všechny kvalifikátory, které se vztahují k poznámce skupiny, která se používá u každé poznámky.
_When_(expr, anno-list) expr je výraz, který lze převést na bool . Pokud je hodnota nenulová ( true ), poznámky, které jsou určeny v, anno-list jsou považovány za použitelné.

Ve výchozím nastavení je pro každou anotaci v anno-list , expr interpretován jako použití vstupních hodnot, pokud je Poznámka podmínkou, a jako výstupních hodnot, pokud je Poznámka podmínkou. Chcete-li přepsat výchozí hodnotu, můžete použít _Old_ vnitřní při vyhodnocení podmínky post, aby označovala, že by měly být použity vstupní hodnoty. Poznámka: Různé poznámky mohou být povoleny jako důsledek použití, je- li zahrnuta proměnlivá hodnota (například *pLength ), protože vyhodnocený výsledek v předběžné expr podmínce se může lišit od vyhodnoceného výsledku v podmínkách post.

Viz také