🦊
Size: a a a
🦊
f&
TS
CC
CC
f&
TS
EF
template <typename T>
class SomeContainer {
void add(const T &v) {
return this->add(v);
}
void add(T &&v) {
// actual implementation
}
}
EF
f&
template <typename T>
class SomeContainer {
void add(const T &v) {
return this->add(v);
}
void add(T &&v) {
// actual implementation
}
}
EF
f&
template <typename T>
class SomeContainer {
void add(const T &v) {
return this->add(v);
}
void add(T &&v) {
// actual implementation
}
}
template <typename T>
class SomeContainer {
void add(const T &v);
}
template <typename T>
void SomeContainer::add(const T &v) {
// actual implementation
}
EF
template <typename T>
class SomeContainer {
void add(const T &v);
}
template <typename T>
void SomeContainer::add(const T &v) {
// actual implementation
}
SomeContainer<int>().add(42)
SG
SomeContainer<int>().add(42)
f&
SomeContainer<int>().add(42)
SG
EF
EF
42
не lvalueEF