#include namespace standards { struct datastructure { }; void algorithm(const datastructure& ds) { std::cout << "standards::algorithm" << std::endl; } void foo() { std::cout << "standards::foo" << std::endl; } } int main(int argc, char** argv) { // does not compile, can't find a function foo // foo(); standards::datastructure ds; // the function standards::algorithm will be found based on koenig lookup algorithm(ds); return 0; }