Использование std::complex может влиять на производительность арифметических операций в C++. 1
Отсутствие отдельного мнимого типа в C++ означает, что при операциях с мнимыми числами выполняется много дополнительных вычислений для нулевой действительной части. 1 Например, при сложении двух мнимых чисел в C++ происходит два сложения, так как добавляются и реальные части. 1 При умножении вместо одного умножения выполняется четыре умножения и два сложения. 1
Также, по данным с сайта Stack Overflow, при использовании перегруженного оператора * для умножения двух значений std::complex операция может выполняться медленнее, чем при написании операции вручную. 2 Это связано с тем, что оператору нужно проверять наличие NaN во входных данных, так как по-особому определяется комплексная бесконечность. 2
Однако стоит учитывать, что производительность зависит от конкретных условий и может отличаться в разных системах.