C++中namespace detail或namespace internal的使用

Posted fengbingchun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中namespace detail或namespace internal的使用相关的知识,希望对你有一定的参考价值。

      在很多开源代码中偶尔会使用名字为”detail”或”internal”的命名空间,如OpenCV的modules目录中,有些文件中使用了namespace detail,有些文件中使用了namespace internal。

      名为detail的命名空间通常与名为internal的命名空间具有相同的使用方式。它们通常用于在公共接口中不可见或至少应被上层用户忽略的”内部细节(internal detail)”。

      以下为非常简单的测试代码段:

      funset.hpp:

namespace common 

namespace internal 
	char* name();
 // namespace internal

 // namesapce common

      funset.cpp:

namespace common 

namespace internal 
	char* name()  return "spring"; 
	const char* city = "BeiJing";
 // namespace internal

namespace detail 
	class Addr 
	public:
		static char* csdn()  return "https://blog.csdn.net/fengbingchun"; 
		static char* github()  return "https://github.com/fengbingchun"; 

		Addr() = delete;
	; // class Addr
 // namespace detail

 // namesapce common

int test_namespace_detail_internal()

	fprintf(stdout, "name: %s, city: %s\\n", common::internal::name(), common::internal::city);
	fprintf(stdout, "csdn addr: %s\\ngithub addr: %s\\n", common::detail::Addr::csdn(), common::detail::Addr::github());
	return 0;

      执行结果如下:

      GitHubhttps://github.com/fengbingchun/Messy_Test

以上是关于C++中namespace detail或namespace internal的使用的主要内容,如果未能解决你的问题,请参考以下文章

C++:在匿名命名空间中声明函数原型的正确方法是啥?

命名空间的使用方式(c++基础语法一)

C++基础学习笔记命名空间 namespace 的理解和使用

C++学习_C++概述

HTTP Status 404 - There is no Action mapped for namespace [/] and action name [product-save] associa

C++中namespace和class