IZ
Size: a a a
IZ
I
VK
D
AG
class PackageBase
{
virtual size_t size() = 0;
virtual size_t weight() = 0;
}
template<std::size_t P, std::size_t N>
class P1 : public PackageBase {…}
template<typename T>
class P2 : public PackageBase {…}
Class C {
PackageBase p_;
set_package(PackageBase &&p);
is_package(const PackageBase &p); // deep copy?!
}
C c;
c.set_package(std::move(P<2, 5>{weight = 5}));
c.is_package(P<2, 5>{weight = 5});
AG
CD
class PackageBase
{
virtual size_t size() = 0;
virtual size_t weight() = 0;
}
template<std::size_t P, std::size_t N>
class P1 : public PackageBase {…}
template<typename T>
class P2 : public PackageBase {…}
Class C {
PackageBase p_;
set_package(PackageBase &&p);
is_package(const PackageBase &p); // deep copy?!
}
C c;
c.set_package(std::move(P<2, 5>{weight = 5}));
c.is_package(P<2, 5>{weight = 5});
AG
AG
AG
CD
AG
CD
CD
AG
S
AG