Nor should you ever need to. The purpose of a main function is to serve as an entry point to your program, so you'll inherently enter it when you program starts.
Any other flow control should use the appropriate methods; loops, ifs and the like.
@Cubbi, is that in the spec? AFAIK, there is nothing magical about main(). If you want to call it, you can, but if you are, I'd rethink your design since this is not generally useful.
#include <iostream>
// The name main is not otherwise reserved. (there is nothing magical about main)
namespace A
{
void main( double d ) { std::cout << "A::main(" << d << ")\n" ; }
int main() { std::cout << "A::main()\n" ; }
}
// A program shall contain a global function called main,
// which is the designated start of the program - IS.
int main()
{
A::main(23.4) ;
A::main() ;
// The (global) function main shall not be used within a program - IS.
// (if you want to call it, you can) a conforming compiler would give an error if you do.
main() ; // error: ISO C++ forbids taking address of function '::main' [-Wpedantic]
}