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?