From 8e1a1893281186c43e65ebe8e2f252567fbcf69e Mon Sep 17 00:00:00 2001 From: archibate <1931127624@qq.com> Date: Tue, 10 Jan 2023 18:16:55 +0800 Subject: [PATCH] update allocator --- 08/include/CudaAllocator.h | 4 ++++ 09/include/CudaAllocator.h | 4 ++++ specifelse/benchtest/.gitignore | 1 + specifelse/slides.pptx | Bin 8864584 -> 8864871 bytes 4 files changed, 9 insertions(+) diff --git a/08/include/CudaAllocator.h b/08/include/CudaAllocator.h index ba571c7a..ef33b1c6 100644 --- a/08/include/CudaAllocator.h +++ b/08/include/CudaAllocator.h @@ -25,6 +25,10 @@ struct CudaAllocator { ::new((void *)p) T(std::forward(args)...); } + template // cihou shabi wendous + constexpr CudaAllocator(CudaAllocator const &other) noexcept { + } + constexpr bool operator==(CudaAllocator const &other) const { return this == &other; } diff --git a/09/include/CudaAllocator.h b/09/include/CudaAllocator.h index ba571c7a..ef33b1c6 100644 --- a/09/include/CudaAllocator.h +++ b/09/include/CudaAllocator.h @@ -25,6 +25,10 @@ struct CudaAllocator { ::new((void *)p) T(std::forward(args)...); } + template // cihou shabi wendous + constexpr CudaAllocator(CudaAllocator const &other) noexcept { + } + constexpr bool operator==(CudaAllocator const &other) const { return this == &other; } diff --git a/specifelse/benchtest/.gitignore b/specifelse/benchtest/.gitignore index b18fd877..20cfc9ca 100644 --- a/specifelse/benchtest/.gitignore +++ b/specifelse/benchtest/.gitignore @@ -1 +1,2 @@ jomtSettings/ +.cache/ diff --git a/specifelse/slides.pptx b/specifelse/slides.pptx index 23ad1630e8061a05a3fa0f5e2f29bfa0765ddffb..6e04fc086f43898e5ef4d634fa97e80fa937e262 100644 GIT binary patch delta 10316 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 delta 10088 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 O1$7k%fr|o{=zjnO`V;&B