propositos liderazgo lider buen c++ boost

c++ - buen - liderazgo



¿Cuál es el propósito de una "::" líder en una llamada a un método C++? (2)

Para indicar que este es un espacio de nombre de nivel superior.

Es muy similar (pero no idéntico) a cómo funciona un nombre de directorio. Sin el doble punto inicial, C ++ primero comprobará si hay un espacio de nombre de ese nombre dentro del espacio de nombres ''activo'' actual. Si no hay, entonces buscará un espacio de nombre del nombre en el nivel superior.

Con el doble punto inicial, C ++ omitirá la primera comprobación y solo buscará un espacio de nombre de nivel superior.

He estado usando las bibliotecas de Boost, y en Boost.Exception, he notado un código como el siguiente:

#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x)

Solo por curiosidad: ¿cuál es el propósito del líder :: before boost::throw_exception(x) ?


Para referirse al espacio de nombres raíz. Esto a menudo es útil si su clase o su espacio de nombres usa un nombre que también existe en la raíz, pero en algún momento desea referirse a la versión raíz.

Por ejemplo, si he sobrecargado algo new en mi clase, pero deseo en algún momento referirme a la opción predeterminada (raíz) new , entonces usaría ::new para referirme a la raíz nueva.