KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm wondering what the difference is between using a static const and an enum hack when using template metaprogramming techniques. EX: (Fibonacci via TMP) template< int n > struct TMPFib { static const int val = TMPFib< n-1 >::val + TMPFib< n-2 >::val; }; template<> struct TMPFib< 1 > { static const int val = 1; }; template<> struct TMPFib< 0 > { static const int val = 0; }; vs. template< int n > struct TMPFib { enum { val = TMPFib< n-1 >::val + TMPFib< n-2 >::val }; }; template<> struct TMPFib< 1 > { enum { val = 1 }; }; template<> struct TMPFib< 0 > { enum { val = 0 }; }; Why use one over the other? I've read that the enum hack was used before static const was supported inside classes, but why use it now?
Tags (comma-separated)
Save Edits
Cancel