#include <iostream>

#define PRINT(val) std::cout << val << std::endl
namespace sub {
	int value = 1;
}
namespace b {
	int alt = 3;
}

namespace a {
 	namespace b {
		int value = 2;
		
		void func() {
			PRINT(value);
			PRINT(sub::value);
		}
 	}
	
	void func() {
		PRINT(b::value);
		PRINT(sub::value);
		//PRINT(b::alt); //no 'alt' in the closest 'b' namespace
	}
}

int main() {
	PRINT("a::func");
	a::func();
	PRINT("a::b::func");
	a::b::func();
}
