(also, if Function_templates is a namespace, using "static" is usually a bad idea)
Also, the main function shouldn't be in a user-defined namespace: the runtime isn't going to call Template_Programming::main to start your program, it's going to call main.
The function main() cannot be within a namespace it must be within the global scope.
Also when dealing with templates both the definition and the implementation must be within the same compilation unit, usually meaning they are in the same file, most often a header file.
Your compiler is allowing non-standard main definitions. It will not work for the majority of people.
Standard wrote:
3.6 Start and termination [basic.start] 3.6.1 Main function [basic.start.main] 1 A program shall contain a global function called main, which is the designated start of the program.
As you can see C++ Standard clearly requires that main() should not be a part of any namespace.