C++ Primer 5th笔记(chap 18 大型程序工具)内联命名空间 (inline namespace)
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ Primer 5th笔记(chap 18 大型程序工具)内联命名空间 (inline namespace)相关的知识,希望对你有一定的参考价值。
1. inline必须出现在命名空间第一次出现的地方
inline namespace FifthEd {
//...
}
//后续再打开命名空间的时候可以写inline也可以不写
namespace FifthEd { // 隐式内敛
// ...
}
2. 当应用程序的代码在一次发布和另一次发布之间发生改变时,常使用内联命名空间。
eg. 把本书当前版本的所有代码放在一个内联命名空间中,而之前版本的代码都放在一个非内联命名空间中
namespace FourthEd {
class Query_base { /*...*/ };
// 本书第4版用到的其他代码
}
// 命名空间cplusplus_primer将同时使用这两个命名空间
namespace cplusplus_primer {
#include "FifthEd.h"
#include "FoutthEd.h"
}
FifthEd是内联的,所以形如cplusplus_primer::的代码可以直接获得FifthEd的成员
如果想用到早期版本的代码,则必须加上完整的外层命名空间名字:cplusplus_primer::FourthEd::Query_base
以上是关于C++ Primer 5th笔记(chap 18 大型程序工具)内联命名空间 (inline namespace)的主要内容,如果未能解决你的问题,请参考以下文章
C++ Primer 5th笔记(chap 18 大型程序工具)noexcept
C++ Primer 5th笔记(chap 18 大型程序工具)异常处理
C++ Primer 5th笔记(chap 18 大型程序工具)捕获异常
C++ Primer 5th笔记(chap 18 大型程序工具)命名空间特性