get_deleter.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com//===----------------------------------------------------------------------===//
2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com//
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com//                     The LLVM Compiler Infrastructure
4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com//
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// This file is distributed under the University of Illinois Open Source
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com// License. See LICENSE.TXT for details.
7daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.com//
88a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//===----------------------------------------------------------------------===//
97ce661d19c5cf4484305a1b20c44bd111f129847robertphillips@google.com
108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// <memory>
118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
124991b8f23482afc1494fd17647421ce68de53331robertphillips@google.com// unique_ptr
138b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org
148b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org// test get_deleter()
158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
164991b8f23482afc1494fd17647421ce68de53331robertphillips@google.com#include <memory>
174991b8f23482afc1494fd17647421ce68de53331robertphillips@google.com#include <cassert>
184991b8f23482afc1494fd17647421ce68de53331robertphillips@google.com
198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comstruct Deleter
207bd141dce43ea3405bc60c9c84e6f910b851b079skia.committer@gmail.com{
217ce661d19c5cf4484305a1b20c44bd111f129847robertphillips@google.com    void operator()(void*) {}
227ce661d19c5cf4484305a1b20c44bd111f129847robertphillips@google.com
237ce661d19c5cf4484305a1b20c44bd111f129847robertphillips@google.com    int test() {return 5;}
247ce661d19c5cf4484305a1b20c44bd111f129847robertphillips@google.com    int test() const {return 6;}
25daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.com};
26daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.com
27daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.comint main()
28daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.com{
29daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.com    {
30daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.com    std::unique_ptr<int[], Deleter> p;
31daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.com    assert(p.get_deleter().test() == 5);
32eeaeafebdeec2c546134b741ab8b3c6b7c5190abskia.committer@gmail.com    }
33daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.com    {
34daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.com    const std::unique_ptr<int[], Deleter> p;
35daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.com    assert(p.get_deleter().test() == 6);
36eeaeafebdeec2c546134b741ab8b3c6b7c5190abskia.committer@gmail.com    }
37daaafa6e81860e3dc52660ba019c336f0a43f1e7reed@google.com}
384e2b3d3fb1288c6dc0f3ea1c0aa4a0d7c603bd7breed@google.com