Согласно http://en.cppreference.com/w/cpp/language/explicit_cast, приведение в стиле C и функциональное приведение эквивалентны. Однако см. следующий пример:
#include <array>
int main() {
std::array<int, 3> arr{};
(void)arr;
//void(arr);
}
Пока (void)arr компилируется, void(arr) нет. Что я пропустил?
(type)(var)
, чтобы избежать этой двусмысленности. Приведения в стиле C++ однозначны, но, с другой стороны, слишком неприятны. 18.07.2014