Explain one-definition rule (ODR).
According to one-definition rule, C++ constructs should be identically defined in each compilation unit they are used in.
As per ODR, two definitions contained in different source files are termed as to be identically defined if they token-for-token identical. Tokens must have same meaning in both source files.
Identically defined does not mean character-by-character equivalence. Two definitions can have different comments or whitespace and yet be identical.