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

Is this a good practice to rename and reinclude std::unique_ptr?

本文关键字:一种 好习惯 ptr 新包含 std unique 重命名      更新时间:2023-10-16

代码如下

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

所以每次我使用 std::unique_ptr 时,我都会包含"ptr.h"并将其用作 Ptr。这是一个好的做法吗?

这种事情只会损害可读性。普通C++程序员在知道你对Ptr的概念是什么之前就知道unique_ptr是什么的可能性更高。此外,我可以谷歌前者而不是后者。

假设您的要求已更改并决定使用 std::share_ptr .你自然会这样做:

template<class T> using Ptr = std::shared_ptr<T>;

还行!伟大!使用Ptr的代码没有变化。但std::shared_ptr在语义上与std::unique_ptr不同。当一些不知道变化的不知情程序员继续认为Ptr仍然std::unique_ptr......咔嚓!

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