@@ -2236,6 +2236,95 @@ using testing::AssertionResult;
22362236#endif // TESTING_DEFS_H
22372237)cc" ;
22382238
2239+ constexpr const char StdUniquePtrHeader[] = R"cc(
2240+ namespace std {
2241+
2242+ template <typename T>
2243+ struct default_delete {};
2244+
2245+ template <typename T, typename D = default_delete<T>>
2246+ class unique_ptr {
2247+ public:
2248+ using element_type = T;
2249+ using deleter_type = D;
2250+
2251+ constexpr unique_ptr();
2252+ constexpr unique_ptr(nullptr_t) noexcept;
2253+ unique_ptr(unique_ptr&&);
2254+ explicit unique_ptr(T*);
2255+ template <typename U, typename E>
2256+ unique_ptr(unique_ptr<U, E>&&);
2257+
2258+ ~unique_ptr();
2259+
2260+ unique_ptr& operator=(unique_ptr&&);
2261+ template <typename U, typename E>
2262+ unique_ptr& operator=(unique_ptr<U, E>&&);
2263+ unique_ptr& operator=(nullptr_t);
2264+
2265+ void reset(T* = nullptr) noexcept;
2266+ T* release();
2267+ T* get() const;
2268+
2269+ T& operator*() const;
2270+ T* operator->() const;
2271+ explicit operator bool() const noexcept;
2272+ };
2273+
2274+ template <typename T, typename D>
2275+ class unique_ptr<T[], D> {
2276+ public:
2277+ T* get() const;
2278+ T& operator[](size_t i);
2279+ const T& operator[](size_t i) const;
2280+ };
2281+
2282+ template <typename T, typename... Args>
2283+ unique_ptr<T> make_unique(Args&&...);
2284+
2285+ template <class T, class D>
2286+ void swap(unique_ptr<T, D>& x, unique_ptr<T, D>& y) noexcept;
2287+
2288+ template <class T1, class D1, class T2, class D2>
2289+ bool operator==(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
2290+ template <class T1, class D1, class T2, class D2>
2291+ bool operator!=(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
2292+ template <class T1, class D1, class T2, class D2>
2293+ bool operator<(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
2294+ template <class T1, class D1, class T2, class D2>
2295+ bool operator<=(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
2296+ template <class T1, class D1, class T2, class D2>
2297+ bool operator>(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
2298+ template <class T1, class D1, class T2, class D2>
2299+ bool operator>=(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
2300+
2301+ template <class T, class D>
2302+ bool operator==(const unique_ptr<T, D>& x, nullptr_t) noexcept;
2303+ template <class T, class D>
2304+ bool operator==(nullptr_t, const unique_ptr<T, D>& y) noexcept;
2305+ template <class T, class D>
2306+ bool operator!=(const unique_ptr<T, D>& x, nullptr_t) noexcept;
2307+ template <class T, class D>
2308+ bool operator!=(nullptr_t, const unique_ptr<T, D>& y) noexcept;
2309+ template <class T, class D>
2310+ bool operator<(const unique_ptr<T, D>& x, nullptr_t);
2311+ template <class T, class D>
2312+ bool operator<(nullptr_t, const unique_ptr<T, D>& y);
2313+ template <class T, class D>
2314+ bool operator<=(const unique_ptr<T, D>& x, nullptr_t);
2315+ template <class T, class D>
2316+ bool operator<=(nullptr_t, const unique_ptr<T, D>& y);
2317+ template <class T, class D>
2318+ bool operator>(const unique_ptr<T, D>& x, nullptr_t);
2319+ template <class T, class D>
2320+ bool operator>(nullptr_t, const unique_ptr<T, D>& y);
2321+ template <class T, class D>
2322+ bool operator>=(const unique_ptr<T, D>& x, nullptr_t);
2323+ template <class T, class D>
2324+ bool operator>=(nullptr_t, const unique_ptr<T, D>& y);
2325+ }
2326+ )cc" ;
2327+
22392328std::vector<std::pair<std::string, std::string>> getMockHeaders () {
22402329 std::vector<std::pair<std::string, std::string>> Headers;
22412330 Headers.emplace_back (" cstddef.h" , CStdDefHeader);
@@ -2253,6 +2342,7 @@ std::vector<std::pair<std::string, std::string>> getMockHeaders() {
22532342 Headers.emplace_back (" statusor_defs.h" , StatusOrDefsHeader);
22542343 Headers.emplace_back (" absl_log.h" , AbslLogHeader);
22552344 Headers.emplace_back (" testing_defs.h" , TestingDefsHeader);
2345+ Headers.emplace_back (" std_unique_ptr.h" , StdUniquePtrHeader);
22562346 return Headers;
22572347}
22582348
0 commit comments