std::shared_ptr 是否与在声明变量时将 "SharedPtr" 添加到 class 的名称相同?

Is the std::shared_ptr the same as adding "SharedPtr" to the name of a class when declaring a variable?

我遇到了一个有点奇怪的 "shared pointer" 用法。据我所知,共享指针写成

std::shared_ptr<void()> pointy(fun, del);

但是,我有一个情况,我有一个接口 IGenericResult(所有不同的结果-类 实现)。我找到了一个地方,它只是将 "SharedPtr" 添加到名称的末尾。像这样;

IGenericResultSharedPtr result = databasePointer->getLatestResult();
result->getTimestamp();   // Example of usage

似乎没有任何定义的 class/interface/header/anything 命名为 IGenericResultSharedPtr 所以我只能假设它是 C++ 中内置的东西(当前使用 C++ 版本11 我认为)。

这是否与 std::shared_ptr 相同(如果是,我将如何在 std语法)?如果不是一回事,有什么区别?

C++ 中没有内置 "if the type name is XYZSharedPtr, it is instead std::shared_ptr<XYZ>" 这样的东西。

代码的作者在某处创建了一个类型别名,

using IGenericResultSharedPtr = std::shared_ptr<IGenericResult>;

typedef std::shared_ptr<IGenericResult> IGenericResultSharedPtr;

(或者可能包含在宏中 - 谁知道呢)。请 IDE 查找定义:)