代码如下
// in ptr.h
#pragma once
#include <memory>
template<class T> using Ptr = std::unique_ptr<T>;
所以每次我使用std :: unique_ptr时,我都包含“ptr.h”并将其用作Ptr。这是一个好习惯吗?
答案 0 :(得分:6)
这种事只会伤害可读性。普通C ++程序员在知道unique_ptr
的概念之前知道Ptr
是什么的几率更高。此外,我可以谷歌前者,而不是后者。
答案 1 :(得分:2)
假设您的要求已更改并决定使用std::share_ptr
。你自然会这样做:
template<class T> using Ptr = std::shared_ptr<T>;
OK!大!使用Ptr
的代码没有变化。但std::shared_ptr
在语义上与std::unique_ptr
不同。当一些不知道变化的不知情的程序员继续认为Ptr
仍然是std::unique_ptr
... kaboom!
我学到的一件事是,为了简短起见,不要牺牲代码可读性是很重要的。