0

代码如下

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

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

4

2 回答 2

6

这种事情只会损害可读性。unique_ptr一般 C++ 程序员在知道你的概念之前知道a 是什么的可能性更高Ptr。此外,我可以搜索前者而不是后者。

于 2013-02-01T02:11:19.093 回答
2

假设您的需求发生了变化并决定使用std::share_ptr. 你自然会这样做:

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

好的!伟大的!使用Ptr. 但std::shared_ptr在语义上不同于std::unique_ptr. 当一些不知道变化的不知情的程序员继续认为那Ptr仍然是std::unique_ptr...... kaboom!

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

于 2013-02-01T02:21:16.163 回答