Avatar ·

O que são tipos POD em C++ e para que servem?

Olá a todos! Comecei a estudar C++ e me deparei com o termo "tipo POD". Li a documentação, mas ainda não entendo completamente. Parece que é "Plain Old Data", mas o que isso traz na prática? Digamos que eu escreva uma estrutura simples para armazenar um ponto: ```cpp struct Point { int x; int y; }; ``` Ela é um tipo POD? E se eu adicionar um construtor? ```cpp struct Point2 { Point2() : x(0), y(0) {} int x; int y; }; ``` Ou se eu adicionar uma função virtual? ```cpp struct Point3 { virtual void print() {} int x; int y; }; ``` Por que isso é importante? Onde é usado? Ouvi dizer que tipos POD podem ser copiados via memcpy, mas estruturas comuns não. Isso é verdade? E como verificar se um tipo é POD em C++ moderno? Gostaria de uma explicação clara com exemplos, de preferência do ponto de vista do padrão moderno (C++11/14/17/20). Desde já, obrigado! <<>>

O que são tipos POD em C++?

POD (Plain Old