src/hotspot/share/metaprogramming/removePointer.hpp
changeset 53244 9807daeb47c4
parent 47216 71c04702a3d5
equal deleted inserted replaced
53243:8bea4144b21c 53244:9807daeb47c4
     1 /*
     1 /*
     2  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    20  * or visit www.oracle.com if you need additional information or have any
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    21  * questions.
    22  *
    22  *
    23  */
    23  */
    24 
    24 
    25 #ifndef SHARE_VM_METAPROGRAMMING_REMOVEPOINTER_HPP
    25 #ifndef SHARE_METAPROGRAMMING_REMOVEPOINTER_HPP
    26 #define SHARE_VM_METAPROGRAMMING_REMOVEPOINTER_HPP
    26 #define SHARE_METAPROGRAMMING_REMOVEPOINTER_HPP
    27 
    27 
    28 #include "memory/allocation.hpp"
    28 #include "memory/allocation.hpp"
    29 
    29 
    30 // This metafunction returns for a type T either the underlying type behind
    30 // This metafunction returns for a type T either the underlying type behind
    31 // the pointer iff T is a pointer type (irrespective of CV qualifiers),
    31 // the pointer iff T is a pointer type (irrespective of CV qualifiers),
    36 template <typename T> struct RemovePointer<T*>: AllStatic { typedef T type; };
    36 template <typename T> struct RemovePointer<T*>: AllStatic { typedef T type; };
    37 template <typename T> struct RemovePointer<T* const>: AllStatic { typedef T type; };
    37 template <typename T> struct RemovePointer<T* const>: AllStatic { typedef T type; };
    38 template <typename T> struct RemovePointer<T* volatile>: AllStatic { typedef T type; };
    38 template <typename T> struct RemovePointer<T* volatile>: AllStatic { typedef T type; };
    39 template <typename T> struct RemovePointer<T* const volatile>: AllStatic { typedef T type; };
    39 template <typename T> struct RemovePointer<T* const volatile>: AllStatic { typedef T type; };
    40 
    40 
    41 #endif // SHARE_VM_METAPROGRAMMING_REMOVEPOINTER_HPP
    41 #endif // SHARE_METAPROGRAMMING_REMOVEPOINTER_HPP