Voglio scrivere una libreria con la funzione "nessuna garanzia di perdita di risorse". Quindi saprò se ogni metodo assegna o meno una risorsa. Potrebbe cambiare il codice. Ad esempio:
void foo()
{
methodDontAllocateAnyResources();
methodCanThrow();
}
void bar()
methodAllocateSomeResources();
try{
methodCanThrow();
}
catch(const std::exception& exp){
releaseAllocatedResources();
throw;
}
}
Entrambe le funzioni foo () e bar () possono generare un'eccezione. Non importa perché faccio propagare le eccezioni. Ma in bar (), devo rilevare una possibile eccezione per evitare una perdita di risorse.
Nell'esempio potrei decidere di usare o meno un blocco try-catch facilmente. Tuttavia, sai, normalmente non possiamo capire se un metodo assegna o meno una risorsa con il suo nome. Quindi, ho deciso di mettere queste informazioni nella documentazione del metodo. Doxygen non ha un tale tag. Inoltre, non riesco a trovare alcuna risorsa web che lo suggerisca. Pensi che l'utilizzo di un tag personalizzato @ assegnazione risorse sia una buona idea?
Grazie