>> what is automatic counting?
Notice that there is no size specified for that array. The compiler automatically counts the values in the initializer and uses that for the size.

>> explaination
The compiler must have enough knowledge about the class to create an object by the end of the class definition, including the exact sizes of all the components. So you have to provide a size inside the class declaration for a non-static array, even if it is const.

I'm not sure if the codeguru page is accurate according to the standard or not. To my knowledge only integral types could be initialized in the class like that. Perhaps they use a different compiler that allows it as an extension.