C++ 重命名并重新包含std::unique\u ptr是一种好的做法吗?

C++ 重命名并重新包含std::unique\u ptr是一种好的做法吗?,c++,C++,代码如下 // in ptr.h #pragma once #include <memory> template<class T> using Ptr = std::unique_ptr<T>; //在ptr.h中 #布拉格语一次 #包括 模板使用Ptr=std::unique\u Ptr; 所以每次我使用std::unique_ptr时,我都会包含“ptr.h”并将其用作ptr。这是一种好的做法吗?这种做法只会损害可读性。在C++程序员知道“代码> PT

代码如下

// in ptr.h
#pragma once
#include <memory>
template<class T> using Ptr = std::unique_ptr<T>;
//在ptr.h中
#布拉格语一次
#包括
模板使用Ptr=std::unique\u Ptr;

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

这种做法只会损害可读性。在C++程序员知道“代码> PTR < /C>”的概念之前,平均的C++程序员会知道什么是<代码> UnQuyGPTR <代码>。此外,我可以用谷歌搜索前者,而不是后者。

假设您的需求发生了变化,并决定使用
std::share\u ptr
。你自然会这样做:

template<class T> using Ptr = std::shared_ptr<T>;
使用Ptr=std::shared\u Ptr的模板;
好的!伟大的使用
Ptr
的代码没有更改。但是
std::shared_ptr
在语义上不同于
std::unique_ptr
。当一些不知道更改的程序员继续认为
Ptr
仍然是
std::unique_Ptr
。。。卡布姆


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

您忘记了
=
,我认为这是不必要的开销。建议:使用
#pragma一次
不是一个好的做法,尤其是在编写可移植代码的情况下。当然。它使维护人员更难了解您的代码在做什么,因此它提高了您的工作安全性。Ptr很短,用户可以像使用自己的类检查代码一样检查其定义。@user1899020:只要有足够的时间,任何东西都可以检查。问题是你是否在帮助别人(除了你自己)。请记住,代码编写成本非常低,但阅读成本非常高。@user1899020当像我这样的傻瓜来处理您的代码并使用
unique\u ptr
而不是
ptr
时,它会变得更加混乱。现在,您的代码更加混乱。@user1899020:您是在提问还是在陈述?抱歉,这种代码太糟糕了。谁在乎它短不短,你只打一次。你读了一遍又一遍。我想看看是什么。