ODR violation via overload resolution

suggest change

Even with identical tokens for inline functions, ODR can be violated if lookup of names doesn’t refer to the same entity. let’s consider func in following:

void overloaded(int);
inline void func() { overloaded('*'); }
#include "header.h"

void foo()
    func(); // `overloaded` refers to `void overloaded(int)`
void overloaded(char); // can come from other include
#include "header.h"

void bar()
    func(); // `overloaded` refers to `void overloaded(char)`

We have an ODR violation as overloaded refers to different entities depending of the translation unit.

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents