Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 这个嵌套的命名空间定义做什么?_C++ - Fatal编程技术网

C++ 这个嵌套的命名空间定义做什么?

C++ 这个嵌套的命名空间定义做什么?,c++,C++,我甚至不知道如何搜索它,但我试图测试它,仍然无法理解它。下面的代码是什么意思: boost::asio::io_service::id service::id; 从以下位置获取::是范围解析运算符。左侧的名称表示范围;它可以是命名空间名称或类名。右侧的名称表示该范围的成员 在您的例子中,似乎有一个类maidsafe::crux::detail::service,它包含类型为boost::asio::io_service::id的静态成员id。在许多情况下,静态成员需要类外定义,这是由您发布的代

我甚至不知道如何搜索它,但我试图测试它,仍然无法理解它。下面的代码是什么意思:

boost::asio::io_service::id service::id;

从以下位置获取:

是范围解析运算符。左侧的名称表示范围;它可以是命名空间名称或类名。右侧的名称表示该范围的成员

在您的例子中,似乎有一个类
maidsafe::crux::detail::service
,它包含类型为
boost::asio::io_service::id
的静态成员
id
。在许多情况下,静态成员需要类外定义,这是由您发布的代码提供的

它可以作为任何其他C++声明解析:它声明了名为“代码>服务::ID <代码>类型>代码> Boo::Asio::IOIGoService::ID<代码>。让我们看看各个组件

类型:

  • boost
    是一个名称空间(在全局范围内)
  • asio
    boost
  • io\u服务
    是内部的命名空间或类
    boost::asio
  • id
    boost::asio::io\u服务中的一种类型
姓名:

  • service
    是一个类名(可能在命名空间
    maidsafe::crux::detail
    中)
  • id
    maidsafe::crux::detail::service
    中的静态成员

附录

虽然在这个问题中没有出现,但在更现代的C++代码中有时会遇到一个相关的语法:

namespace maidsafe::rux::detail
{

boost::asio::io_service::id service::id;

}

这在C++17中作为在一行上打开多个名称空间的简写介绍。它与问题中的代码完全相同。

::
是范围解析运算符。左侧的名称表示范围;它可以是命名空间名称或类名。右侧的名称表示该范围的成员

在您的例子中,似乎有一个类
maidsafe::crux::detail::service
,它包含类型为
boost::asio::io_service::id
的静态成员
id
。在许多情况下,静态成员需要类外定义,这是由您发布的代码提供的

它可以作为任何其他C++声明解析:它声明了名为“代码>服务::ID <代码>类型>代码> Boo::Asio::IOIGoService::ID<代码>。让我们看看各个组件

类型:

  • boost
    是一个名称空间(在全局范围内)
  • asio
    boost
  • io\u服务
    是内部的命名空间或类
    boost::asio
  • id
    boost::asio::io\u服务中的一种类型
姓名:

  • service
    是一个类名(可能在命名空间
    maidsafe::crux::detail
    中)
  • id
    maidsafe::crux::detail::service
    中的静态成员

附录

虽然在这个问题中没有出现,但在更现代的C++代码中有时会遇到一个相关的语法:

namespace maidsafe::rux::detail
{

boost::asio::io_service::id service::id;

}

这在C++17中作为在一行上打开多个名称空间的简写介绍。它与问题中的代码完全相同。

可能是一个不错的问题的重复,但需要一个更好的标题来阻止否决票,尽管我想不出一个。也许这个嵌套的名称空间定义有什么作用?@acraig5075可能工作得更好。我将更改标题。谢谢。可能是一个不错的问题的重复,但需要一个更好的标题来阻止落选,尽管我想不出一个。也许这个嵌套的名称空间定义有什么作用?@acraig5075可能工作得更好。我将更改标题。谢谢。
服务
可能是一个名称空间,可以存在于
::maidsafe
::maidsafe::run
::maidsafe::run::detail
中的任何一个中。你可能是对的however@Caleth的确或者它可以是您提到的任何名称空间中的一个类。但我觉得这是不可能的,而且这个问题的级别并不意味着需要超精确的、不太可能的、可能会分散注意力的细节。@Angew同意你的推理,否则,我将在这里抛出一些对限定名称和限定id的引用。
服务
可能是一个命名空间,并且可以存在于任何
::maidsafe
::maidsafe::run
::maidsafe::run::detail
。你可能是对的however@Caleth的确或者它可以是您提到的任何名称空间中的一个类。但我觉得这是不可能的,而且这个问题的级别并不意味着需要超精确、不太可能、可能会分散注意力的细节。@Angew同意你的推理,否则,我将在这里引用限定名称和限定id。