text: Применение: преобразование между числовыми и enum, в том числе если неявное преобразование невозможно (int → enum class) или приводит к предупреждению «Возможная потеря точности» (double → float); приведение указателей к типу void* и наоборот; приведение указателей на производные типы к указателям на базовые типы и наоборот; выбор одной из нескольких перегруженных функций; bool myLess(const wchar_t*, const wchar_t*); bool myLess(const std::wstring&, const std::wstring&); std::vector<std::wstring> list; std::sort(list.begin(), list.end(), static_cast<bool(*)(const std::wstring&, const std::wstring&)>(myLess)); явный вызов конструктора с одним аргументом или перегруженной операции приведения типа; struct Type { // конструктор с одним аргументом для приведения типа int к типу Type Type ( int ); // перегруженная операция для приведения типа Type к типу double operator double () const; }; int main () { Type x, y; int i; double d; // вызов конструктора с одним аргументом x = y + static_cast< Type >( i ); // вызов перегруженной операции приведения типа d = static_cast< double >( x ); return 0; } конструктор может иметь большее число аргументов, но для них должны быть заданы значения по умолчанию; struct Type { // конструктор с несколькими аргументами для приведения типа Type к типу int; // для 2-го и последующих аргументов заданы значения по умолчанию Type ( int, int = 10, float = 0.0 ); }; приведение типа в шаблонах (компилятор уже при специализации шаблона решает, какие операции использовать); приведение операндов тернарной условной операции «?:» к одному типу (значения 2-го и 3-го операндов должны иметь одинаковый тип); Ограничения на expression_from: нет.