如何防止人们创建类的实例,而只创建共享指针?我正在做类似的事情:
class OnlyShred
{
public:
friend std::shared_ptr<OnlyShred> make_shared()
{
return std::make_shared<OnlyShred>();
};
private:
OnlyShred() = default;
OnlyShred(const OnlyShred&) = delete;
OnlyShred(const OnlyShred&&) = delete;
OnlyShred& operator=(const OnlyShred&) = delete;
};
Run Code Online (Sandbox Code Playgroud)
您能确认一下这是否可以吗?如果你能想到这样做有什么缺点吗?该实例无法复制/移动,因此这必须保证当有人使用此类时只有共享指针存在?
我正在尝试使用BGL,我发现文档很精确,但缺乏更多简单案例的示例。我的目标如下所述(阅读文档后我仍然无法做到这一点):
struct Vertex
{
double m_d;
std::size_t m_id;
};
//or
struct Vertex
{
double m_d;
std::size_t id() const;
};
Run Code Online (Sandbox Code Playgroud)
目标:
您能给我写一个关于如何使用 BGL 执行此操作的示例吗?我相信我需要MutableBidirectionalGraph?