Nut can compile in *shared pointer* mode or *regular* mode In *shared pointer* mode results of queries is QList> and in *regular* mode results are QList Almost in every case shared pointer mode is better, But nut support regular mode for backward comptability. To compiling in *shared pointer* define **NUT_SHARED_POINTER** macro Nut has template alias ```cpp #ifdef NUT_SHARED_POINTER template using RowList = QList>; template using Row = QSharedPointer; #else template using RowList = QList; template using Row = T*; #endif ``` In other words these types are defined by this table: | Mode | Nut::Row | Nut::RowList | |------ |----- |--------- | |Regular|T* | QList\ | |Shared pointer|QSharedPointer\ | QList\\> | For the integration of your source, you can use these aliases. Ans also Nut::create() method are defined for two mode ```cpp #ifdef NUT_SHARED_POINTER template inline Row create(QObject *parent) { return QSharedPointer(new T(parent)); } #else template inline Row create() { return new T; } #endif ``` So you can use the Nut::create function without considering in what way the library is being compiled. Example: ```cpp auto post = Nut::create(); ``` In above example if *NUT_SHARED_POINTER* is defined *post* is *QSharedPointer* else is *Post\** I recommand use *NUT_SHARED_POINTER* always!