According to http://en.cppreference.com/w/cpp/language/explicit_cast, C-style cast and functional cast are equivalent. However, see the following example:
#include <array>
int main() {
std::array<int, 3> arr{};
(void)arr;
//void(arr);
}
While (void)arr compiles, void(arr) does not. What have I missed?