Quel est le point de noreturn?

[dcl.attr.noreturn] donne l'exemple suivant:

[[ noreturn ]] void f() {
    throw "error";
    //OK
}

mais je ne comprends pas quel est le point de [[noreturn]], parce que le type de retour de la fonction est déjà void.

Alors, quel est le point de la noreturn attribut? Comment est-il censé être utilisé?

  • Ce qui est important à propos de ce genre de d'une fonction (qui ont le plus de chances de se produire une fois dans un programme d'exécution) qui mérite une telle attention? N'est-ce pas facilement détectable situation?
  • L'OP est l'amalgame entre les notions de “retour” et “valeur de retour”. Compte tenu de la façon dont ils sont presque toujours utilisé en tandem, je pense que la confusion est justifiée.
  • Votre titre est parfait!
InformationsquelleAutor BЈовић | 2012-05-10