Output?
#include <iostream> using namespace std;
template < int n> struct funStruct
{ static const int val = 2*funStruct<n-1>::val;
}; template <> struct funStruct<0>
{ static const int val = 1 ;
}; int main()
{ cout << funStruct<10>::val << endl;
return 0;
} |
(A) Compiler Error
(B) 1024
(C) 2
(D) 1
Answer: (B)
Explanation: This is an example of template metaprogramming. The program mainly calculates 2^10.
Quiz of this Question