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. By default _Nut_ compiles in shared pointer mode, to switch to ols raw pointer mode you must define **NUT_RAW_POINTER** macro Nut has template alias ```cpp #ifdef NUT_RAW_POINTER template using RowList = QList; template using Row = T*; #else template using RowList = QList>; template using Row = QSharedPointer; #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_RAW_POINTER template inline Row create() { return new T; } #else template inline Row create(QObject *parent) { return QSharedPointer(new T(parent)); } #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_RAW_POINTER* is defined *post* is *Post\** else is *QSharedPointer* I recommand use shared pointer mode (default) always!