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.