// Matrix Construct // // Copyright (C) Matrix Construct Developers, Authors & Contributors // Copyright (C) 2016-2019 Jason Volk // // Permission to use, copy, modify, and/or distribute this software for any // purpose with or without fee is hereby granted, provided that the above // copyright notice and this permission notice is present in all copies. The // full license for this software is available in the LICENSE file. #pragma once #define HAVE_IRCD_UTIL_CUSTOM_PTR_H namespace ircd { inline namespace util { template struct custom_ptr; }} template struct ircd::util::custom_ptr :std::unique_ptr> { operator T *() const; using std::unique_ptr>::unique_ptr; }; template ircd::util::custom_ptr::operator T *() const { return this->get(); }