Resultados de la búsqueda a petición "rationale"

4 la respuesta

¿Por qué una plantilla con el tipo de retorno deducido no se puede cargar con otras versiones?

¿Por qué las siguientes dos plantillas son incompatibles y no se pueden sobrecargar? #include <vector> template<typename T> auto f(T t) { return t.size(); } template<typename T> auto f(T t) { return t.foobar(); } int main() ...

5 la respuesta

¿Cuál es el punto de DBNull?

En .NET existe elnull referencia, que se usa en todas partes para denotar que una referencia de objeto está vacía, y luego está elDBNull, que utilizan los controladores de bases de datos (y algunos otros) para denotar ... más o menos lo mismo. ...

5 la respuesta

¿Por qué está mal formado tener funciones constexpr de líneas múltiples?

De acuerdo aExpresiones constantes generalizadas: revisión 5 [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf]Lo siguiente es ilegal. constexpr int g(int n) // error: body not just ‘‘return expr’’ { int r = n; while (--n > 1) r ...

5 la respuesta

¿Cuál fue exactamente la razón detrás de la introducción de referencias en c ++?

De la discusión que ha sucedido en mi pregunta reciente (¿Por qué una referencia de C ++ se considera más segura que un puntero? [https://stackoverflow.com/questions/4715740/why-is-a-c-reference-considered-safer-than-a-pointer] ), plantea otra ...

5 la respuesta

¿Hay alguna razón específica por la cual las declaraciones de espacio de nombres anidado no están permitidas en C ++?

El estándar no permite códigos como este: namespace Hello::World { //Things that are in namespace Hello::World }y en su lugar requiere namespace Hello { namespace World { //Things that are in namespace Hello::World }}¿Cuál es el fundamento? ...

6 la respuesta

¿C ++ 11 cambia el comportamiento de llamar explícitamente a std :: swap para garantizar que se encuentren los intercambios ubicados en ADL, como boost :: swap?

AntecedenteConsidere para esta pregunta el siguiente código: #include <utility> namespace ns { struct foo { foo() : i(0) {} int i; private: foo(const foo&); // not defined, foo& operator=(const foo&); // non-copyable }; void swap(foo& lhs, foo& ...