// compile using // g++ -std=c++0x -Wall C++11_factorial.cpp #include #include using namespace std; long int constexpr factorial (int n) { // only one return statement is allowed; use ternary operator ? return n > 0 ? n * factorial( n - 1 ) : 1; } int main() { vector fact; constexpr long int fact13=factorial(13); // computed at compile time for (int i=1; i<30;++i) { fact.push_back(factorial(i)); // use factorial as usual } cout <<"factorial\n"; for( auto f: fact) { cout << f << endl;} cout<<"Warning: large n factorials are wrong\n"; cout<