Allow custom deletion policies on grpc_core::UniquePtr<>

pull/10426/head
Craig Tiller 8 years ago
parent b3d70102a5
commit 7cbb4feff9
  1. 4
      src/core/lib/support/memory.h
  2. 13
      test/core/support/memory_test.cc

@ -61,8 +61,8 @@ class DefaultDelete {
void operator()(T* p) { Delete(p); }
};
template <typename T>
using UniquePtr = std::unique_ptr<T, DefaultDelete<T>>;
template <typename T, typename Deleter = DefaultDelete<T>>
using UniquePtr = std::unique_ptr<T, Deleter>;
template <typename T, typename... Args>
inline UniquePtr<T> MakeUnique(Args&&... args) {

@ -66,6 +66,19 @@ TEST(MemoryTest, MakeUniqueWithArgTest) {
EXPECT_EQ(42, *i);
}
TEST(MemoryTest, UniquePtrWithCustomDeleter) {
int n = 0;
class IncrementingDeleter {
public:
void operator()(int* p) { ++*p; }
};
{
UniquePtr<int, IncrementingDeleter> p(&n);
EXPECT_EQ(0, n);
}
EXPECT_EQ(1, n);
}
} // namespace testing
} // namespace grpc_core

Loading…
Cancel
Save