Restrict access to the virtual functions move and copy

* These are meant to be used by detail::STVar only and
  are otherwise error-prone to call.
This commit is contained in:
Howard Hinnant
2021-10-19 14:02:30 -04:00
committed by Nik Bougalis
parent 74e6ed1af3
commit 0c13676d5f
13 changed files with 103 additions and 75 deletions

View File

@@ -50,12 +50,6 @@ public:
explicit STArray(int n);
explicit STArray(SField const& f);
STBase*
copy(std::size_t n, void* buf) const override;
STBase*
move(std::size_t n, void* buf) override;
STObject&
operator[](std::size_t j);
@@ -134,6 +128,14 @@ public:
bool
isDefault() const override;
private:
STBase*
copy(std::size_t n, void* buf) const override;
STBase*
move(std::size_t n, void* buf) override;
friend class detail::STVar;
};
inline STObject&