C-style cast ((long)intValue) по сути самое медленное преобразование, так как в этом случае последовательно перебираются следующие вызовы:
const_cast
static_cast
static_cast + const_cast
reinterpret_cast
reinterpret_cast + const_cast
---
1. static_cast
static_cast преобразует выражения одного статического типа в объекты и значения другого статического типа. Поддерживается UpCast и DownCast. Проверка производится на уровне компиляции.
2. dynamic_cast
Использует систему RTTI (Runtime Type Information) для динамического приведения типов во время выполнения. В случае неправильного приведения типов для ссылок вызывается исключительная ситуация std::bad_cast, а для указателей будет возвращен 0.
3. const_cast
Снимает или добавляет const и volatile. Это преобразование проверяется на уровне компиляции.
4. reinterpret_cast
Приведение типов без проверки. reinterpret_cast — непосредственное указание компилятору. Применяется только в случае полной уверенности программиста в собственных действиях. Не снимает const и volatile. Применяется для приведения указателя к указателю, указателя к целому и наоборот.