这是重命名和重新包含std :: unique_ptr的好习惯吗?

时间:2013-02-01 02:07:59

标签: c++

代码如下

// in ptr.h
#pragma once
#include <memory>
template<class T> using Ptr = std::unique_ptr<T>;

所以每次我使用std :: unique_ptr时,我都包含“ptr.h”并将其用作Ptr。这是一个好习惯吗?

2 个答案:

答案 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!

我学到的一件事是,为了简短起见,不要牺牲代码可读性是很重要的。