Al ir a través de las últimas ediciones del proyecto de C++ 0x Trabajo me encontré con un montón de"noexcept" vs "Lanza: nada"
- eliminación de la palabra clave
noexcept
- adición de Pruebas Lanzamientos: nada en el mismo lugar
y viceversa. Sólo algunos ejemplos:
- reemplazo de
noexcept
contra Lanza: nada: seguridad 20.6.4 puntero [util.dynamic.safety]template<class T> T*undeclare_reachable(T*p);
- adición de
noexcept
: 20.6.3.2. Puntero rasgos funciones miembro [pointer.traits.functions]:static pointer pointer_trait<T*>::pointer_to(...) noexcept;
preguntas aquí:
- ¿Hay una regla/patrón general, cuando nos encontremos frente a
noexcept
Lanza: nada en el Std-Lib? - ¿Deberían los usuarios derivar un comportamiento específico según esa regla dada? Es decir. cuando ellos deberían o no deberían agregar
noexcept
a sus propias funciones?
Ya veo. Situación difícil.Creo que leeré un poco más en los documentos del WG21 para prepararme para preguntas como * "¿cuándo debería agregar' noexcept' a mis propias funciones? ". * N3279 es un buen punto de entrada. ¿Tienes más? Por ejemplo, actualmente sugiero que 'swap' debe ser' noexcept' en el código de usuario, y se planea seguir la literatura sobre * move-assign *, etc. ¿Los usuarios deberían marcar 'noexcept' o la suposición implícita es suficiente? ¿Podemos esperar que los compiladores obtengan (algún día) algo de eso, de los usuarios? – towi
Actualmente no tengo acceso a un compilador que implemente noexcept. Por lo tanto, no tengo ningún consejo personal sobre el tema (la experimentación es una gran cosa para mí). Puede encontrar todos los documentos del WG21 aquí: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/ –
Gracias, seguiré de cerca las notas del compilador. Sí, ya estoy metido en esos documentos :-) – towi