If you see this code,
class A{
public:
A(int a):var(a){}
int var;
};
int f(A obj) {
return obj.var;
}
int main() {
//std::cout<
I did a search over the draft Standard. Basically, in the grammar the -list productions are the ones that have commas in them to separate different items. The following results are C++03 specific. In C++0x, expression-list directly delegates to initializer-list because in C++0x brace lists can occur in function and constructor arguments likewise.
init-declarator-list The different names declared in one declaration
Example:
int a, b;
member-declarator-list Similar to the init declarator list, but for member declarations in classes.
Example:
struct A { int a, b; };
mem-initializer-list List of the initializers for members
Example:
struct A { A():a(0), b(0) { } int a; int b; };
type-id-list List of types for exception specifications
Example:
void f() throw(int, bool) { }
There is an identifier-list for macro parameters too, which i haven't got in that list because it's really part of the preprocessor grammar.