以下 hpp 和 cpp 文件摘自我正在使用的一个大型程序。它将与g++ -std=c++17 -pedantic -Wall -Wextra
.
// a.hpp
#include <memory>
class A
{
std::unique_ptr<class A_impl> my;
};
Run Code Online (Sandbox Code Playgroud)
//a.cpp
#include "a.hpp"
int main()
{}
Run Code Online (Sandbox Code Playgroud)
但我不了解有关唯一指针的行上的语法。
问题:
的语法是<class A_impl>
什么?这叫什么(放在class
未声明的标识符之前)?它是在做“前向声明”A_impl
还是什么?我没有说任何关于 identifier 的内容A_impl
。为什么编译器可以接受?
如果这碰巧可能与任何“设计模式”有关,请帮助我识别它。
请指出正确的方向。
它是在做“前向声明”
A_impl
还是什么?
确切地。可能令人困惑的是,它在模板参数中使用了精心设计的类型说明符来做到这一点。与“正常”前向声明的差异
我没有说任何关于
标识符类型的内容A_impl
。为什么编译器可以接受?
std::unique_ptr
可以用不完整的类型实例化 - 就像原始指针一样。
如果这碰巧可能与任何“设计模式”有关,我如何识别它?
归档时间: |
|
查看次数: |
115 次 |
最近记录: |