RFR: 8219816: Add IsArray/RemoveArray type traits utilities

Per Liden per.liden at oracle.com
Mon Mar 4 09:48:59 UTC 2019


On 2/27/19 9:21 PM, Kim Barrett wrote:
>> On Feb 27, 2019, at 10:08 AM, Kim Barrett <kim.barrett at oracle.com> wrote:
>>
>>> On Feb 27, 2019, at 3:53 AM, Per Liden <per.liden at oracle.com> wrote:
>>>
>>> Add IsArray/RemoveArray to our collection of type traits metaprogramming utilities.
>>>
>>> This patch only adds the IsArray/RemoveArray utilities and their respective tests. A later patch I have in my queue that will actually make use of these.
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8219816
>>> Webrev: http://cr.openjdk.java.net/~pliden/8219816/webrev.0
>>>
>>> /Per
>>
>> For completeness, there should probably be IsArray test cases for
>> const/volatile with size.
>>
>> Otherwise, looks good.  I don't need another webrev for those
>> additional test cases.
> 
> HotSpot's metaprogramming utilities have been intentionally modelled
> on those from <type_traits>, both in naming and (with some limitations
> in a few cases) behavior.  The C++11 type trait for removing array
> dimensions from an array type is "remove_extent" (and "remove_all_extents"
> to remove all of them from a multi-dimensional array type).
> 
> So what this change calls RemoveArray ought to be called RemoveExtent.
> Sorry that I forgot to check on this earlier.

Ah, good catch. Renamed accordingly. I'm not implementing 
remove_all_extents at this time, let's add that when there's a use case 
for it.

Updated webrev: http://cr.openjdk.java.net/~pliden/8219816/webrev.1

/Per


More information about the hotspot-dev mailing list