代码如下
// in ptr.h
#pragma once
#include <memory>
template<class T> using Ptr = std::unique_ptr<T>;
所以每次我使用 std::unique_ptr 时,我都会包含“ptr.h”并将其用作 Ptr。这是一个好习惯吗?
代码如下
// in ptr.h
#pragma once
#include <memory>
template<class T> using Ptr = std::unique_ptr<T>;
所以每次我使用 std::unique_ptr 时,我都会包含“ptr.h”并将其用作 Ptr。这是一个好习惯吗?
这种事情只会损害可读性。unique_ptr
一般 C++ 程序员在知道你的概念之前知道a 是什么的可能性更高Ptr
。此外,我可以搜索前者而不是后者。
假设您的需求发生了变化并决定使用std::share_ptr
. 你自然会这样做:
template<class T> using Ptr = std::shared_ptr<T>;
好的!伟大的!使用Ptr
. 但std::shared_ptr
在语义上不同于std::unique_ptr
. 当一些不知道变化的不知情的程序员继续认为那Ptr
仍然是std::unique_ptr
...... kaboom!
我学到的一件事是,不要仅仅为了简洁而牺牲代码的可读性,这一点很重要。