Hideshow minor mode provides selective display of portions of a
program, known as blocks. You can use M-x hs-minor-mode
to enable or disable this mode, or add
hs-minor-mode to the
mode hook for certain major modes in order to enable it automatically
for those modes.
Just what constitutes a block depends on the major mode. In C mode or C++ mode, they are delimited by braces, while in Lisp mode and similar modes they are delimited by parentheses. Multi-line comments also count as blocks.
These variables exist for customizing Hideshow mode.
nilsays that hs-hide-all should hide comments too.