struct A {
int n{};
int* pn{};
};
static_assert(std::is_trivially_copyable_v); // true
int main() {
auto a = A{};
a.n = 1;
a.pn = &a.n;
auto b = A{};
std::memcpy(&b, &a, sizeof(a));
// Now, b.pn points to a.n, rather than b.n.
// So, A should not be trivially relocatable.
}
c ++ 26 введет std :: is_trivially_relocatable_v , а автор предложения гласит: тривиально копируется тривиально перемещаемое. Код: < /p> [code]struct A { int n{}; int* pn{}; };
int main() { auto a = A{}; a.n = 1; a.pn = &a.n; auto b = A{}; std::memcpy(&b, &a, sizeof(a)); // Now, b.pn points to a.n, rather than b.n. // So, A should not be trivially relocatable. } [/code] Мой вопрос: тривиально копируется>
c ++ 26 введет std :: is_trivially_relocatable_v , а автор предложения гласит: тривиально копируется тривиально перемещаемое. Код:
struct A {
int n{};
int* pn{};
};
c ++ 26 введет std :: is_trivially_relocatable_v , а автор предложения гласит: тривиально копируется тривиально перемещаемое. Код:
struct A {
int n{};
int* pn{};
};
c ++ 26 введет std :: is_trivially_relocatable_v , а автор предложения гласит: тривиально копируется тривиально перемещаемое. Код:
struct A {
int n{};
int* pn{};
};