Hello everyone, I was looking at the boost::function preferable syntax. boost::funcion<float (int,int) > I also see that this has also been accepted by the standard for future STL implementation. The C++ grammar for template declaration is as stated below: template-argument-list: template-argument template-argument-list , template-argument template-argument: assignment-expression type-id id-expression None of the 'declaration' rules also seem to parse the tokens 'float (int,int) (I know I am missing something here). I could not figure out why the string 'float (int,int)' is accepted by the compiler and what type it is assigned? Is it just a extension of the standard by GCC? Can somebody help me figure this out? Thanks, Shyam