Я недавно заметил существование типов для комплексных значений в C99 (после того, как они отметили макросы их построения как особенность C11).
Поскольку это C, они построеныв типах, а не в структурах с перегруженными операторами и т. д. Но - это правда или нет, я могу рассматривать их так, как если бы они основывались на шаблоне std::complex
в C ++?i..e.float _Complex
фактически совпадает с std::complex<float>
и double _Complex
с std::complex<double>
?
Примечание: Конечно, они ведут себя точно так же, поскольку в C ++ есть функции, которых нет в C, но мы думаем об этом, как будто мы ограничиваемся "подмножеством C", за исключением этих двух типов.
Если они не фактически одинаковы - пожалуйста, объясните, чем они отличаются.