src/hotspot/share/metaprogramming/removeReference.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_REMOVEREFERENCE_HPP
    25 #ifndef SHARE_METAPROGRAMMING_REMOVEREFERENCE_HPP
    26 #define SHARE_VM_METAPROGRAMMING_REMOVEREFERENCE_HPP
    26 #define SHARE_METAPROGRAMMING_REMOVEREFERENCE_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 reference iff T is a reference type, or the same type T if T is not
    31 // the reference iff T is a reference type, or the same type T if T is not
    33 
    33 
    34 template <typename T> struct RemoveReference: AllStatic { typedef T type; };
    34 template <typename T> struct RemoveReference: AllStatic { typedef T type; };
    35 
    35 
    36 template <typename T> struct RemoveReference<T&>: AllStatic { typedef T type; };
    36 template <typename T> struct RemoveReference<T&>: AllStatic { typedef T type; };
    37 
    37 
    38 #endif // SHARE_VM_METAPROGRAMMING_REMOVEREFERENCE_HPP
    38 #endif // SHARE_METAPROGRAMMING_REMOVEREFERENCE_HPP