Currently most of the Kompute components should not be passed using assignment or copy constructor operators. Also potentially deleting the base constructor on most classes that should not be created with the required data. ie
class NonCopyable {
public:
NonCopyable() = default;
NonCopyable(const NonCopyable&) = delete;
NonCopyable(const NonCopyable&&) = delete;
NonCopyable& operator=(const NonCopyable&) = delete;
NonCopyable& operator=(const NonCopyable&&) = delete;
};
}