In your case, A is also a POD. To find out the correct POD definition, check out this one .
As for your code, the compiler knows that int is a built-in type and has no constructor at all.
Edit:. Your question is rather strange. The compiler knows which type is a module and which is not, he also knows which ones are built-in and not built-in, because it is a compiler that compiles your code :) If the compiler did not know this information, who would it be?
source share