#pragma once namespace outer { inline namespace v1 { void foo(int x); } inline namespace v2 { void foo(long y); } }