Many of the C++ Standard Template Libraries (STLs) contain function recursion and use dynamic memory allocation. For this reason, the STLs cannot be synthesized by Vitis HLS. The solution for STLs is to create a local function with identical functionality that does not feature recursion, dynamic memory allocation, or the dynamic creation and destruction of objects.
Note: Standard data types, such as
std::complex, are supported for synthesis. However, the
std::complex<long double>data type is not supported in Vitis HLS and should not be used.