prog.cpp:17:66: error: ‘std::numeric_limits<long unsigned int>::max()’ cannot appear in a constant-expression
typedef EnableIf< (::std::numeric_limits<unsigned long int>::max() > Sum), unsigned long int>::Type ProbabilityType;
^
prog.cpp:17:70: error: a function call cannot appear in a constant-expression
typedef EnableIf< (::std::numeric_limits<unsigned long int>::max() > Sum), unsigned long int>::Type ProbabilityType;
^
prog.cpp:17:97: error: template argument 1 is invalid
typedef EnableIf< (::std::numeric_limits<unsigned long int>::max() > Sum), unsigned long int>::Type ProbabilityType;
^
prog.cpp:17:100: error: expected ‘;’ at end of member declaration
typedef EnableIf< (::std::numeric_limits<unsigned long int>::max() > Sum), unsigned long int>::Type ProbabilityType;
^
prog.cpp:17:105: error: ‘ProbabilityType’ does not name a type
typedef EnableIf< (::std::numeric_limits<unsigned long int>::max() > Sum), unsigned long int>::Type ProbabilityType;
^