As @MikeSeymour answer is explained, strictly following the standard (C ++ 11, I do not have text in C ++ 14), case (1) should also be wrong - typenamethe qualified name prefix can only be used when ::there is at least one name.
, @hvd, CWG issue 382 , , typename , , . , , -, , .
, (2) , (1) . (, , ) , " , , , typename". "typename, , , , ". (1)
, , , typename typename, .
(1) , . , , - (-, ), typename-specifier ( typename). ( 14.6) , typename , . typename , , ( ).