Font locking of C++ constructors is somewhat inconsistent. This is no doubt complicated by the fact that unlike other function declarations they "don't have a return type". When a single argument is not used but named, the constructor is not fontified (normally it's fontified with `font-lock-function-name-face'). If the keyword explicit is used, then the argument type is fontified as a variable, and the constructor name is fontified as a type. Perhaps interestingly, naming the parameter or adding another parameter causes fontification to work correctly (with or without explicit). I have included a sample file below with comments on what I see in `emacs -q` class Bob { // string is `font-lock-type-face', Bob is `font-lock-function-name-face' Bob( string bob ); // string and Bob are not fontified (though I sometimes see string fontified as a type) Bob( string ); // string is `font-lock-variable-name-face', Bob is `font-lock-type-face' explicit Bob( string ); // string is `font-lock-type-face', Bob is `font-lock-function-name-face' explicit Bob( string, string ); };