n3290 contains the synopsis
int fegetround(void);
in 26.3.1. Why have they kept the »void« from C instead of
int fegetround();
For compatibility with C. Number of C developers use C++ compiler to
compile C code. They do it for stricter casting rules. For that to work
they have to use the syntax that means same in both languages.
Also for backward compatibility. It has been so for decades so there
is plenty of C++ code that has such redundant voids and it has to compile.
, which has the same meaning in C++ IIRC, but is shorter?
Yes, if it is C++ code then that void is redundant. Especially pointless
it is for member functions or default constructors or destructors that
can not be available in C anyway. If it annoys you then write into your
coding standard that usage of redundant void parameters in C++ function
or member function declarations or definitions are forbidden in your code.