Vitis HLS does not support the below coding constructs in this release and the code needs to be refactored.
Constructors, Destructors, P2P, Pointer Cast, and Virtual Functions
Class constructors and destructors are included and synthesized whenever a class object is declared.
Vitis HLS supports virtual functions (including abstract functions) for synthesis, provided that it can statically determine the function during elaboration. Vitis HLS does not support virtual functions for synthesis in the following cases:
- Virtual functions can be defined in a multilayer inheritance class hierarchy but only with a single inheritance.
- Dynamic polymorphism is only supported if the pointer object can be determined at compile time. For example, such pointers cannot be used in an if-else or loop constructs.
- An STL container cannot contain the pointer of an object and call the polymorphism function. Pointer to pointer, pointer cast is not supported in this release.