[llvm] r216821 - Add a test for converting ArrayRef<T *> to ArrayRef<const T *>.

Craig Topper craig.topper at gmail.com
Sat Aug 30 19:05:06 PDT 2014


Thanks! I think only cv qualifiers will be allowed at least based on my
understanding of is_convertible.


On Sat, Aug 30, 2014 at 7:44 PM, David Blaikie <dblaikie at gmail.com> wrote:

>
>
>
> On Sat, Aug 30, 2014 at 10:21 AM, Craig Topper <craig.topper at gmail.com>
> wrote:
>
>> I suspect you'd know better than me. This constructor was my first real
>> experience with type traits.
>>
>
> Added a few in r216830 - I think this generally captures the idea. Are
> there any other conversions, apart from adding cv qualifiers, that we
> should expect this to allow?
>
>
>>
>>
>> On Sat, Aug 30, 2014 at 10:13 AM, David Blaikie <dblaikie at gmail.com>
>> wrote:
>>
>>>
>>>
>>>
>>> On Sat, Aug 30, 2014 at 9:48 AM, Craig Topper <craig.topper at gmail.com>
>>> wrote:
>>>
>>>> Author: ctopper
>>>> Date: Sat Aug 30 11:48:19 2014
>>>> New Revision: 216821
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=216821&view=rev
>>>> Log:
>>>> Add a test for converting ArrayRef<T *> to ArrayRef<const T *>.
>>>>
>>>
>>> Could we use some static_asserts with type traits to check that other
>>> things /aren't/ convertible?
>>>
>>>
>>>>
>>>> Modified:
>>>>     llvm/trunk/unittests/ADT/ArrayRefTest.cpp
>>>>
>>>> Modified: llvm/trunk/unittests/ADT/ArrayRefTest.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/ArrayRefTest.cpp?rev=216821&r1=216820&r2=216821&view=diff
>>>>
>>>> ==============================================================================
>>>> --- llvm/trunk/unittests/ADT/ArrayRefTest.cpp (original)
>>>> +++ llvm/trunk/unittests/ADT/ArrayRefTest.cpp Sat Aug 30 11:48:19 2014
>>>> @@ -63,4 +63,14 @@ TEST(ArrayRefTest, EmptyEquals) {
>>>>    EXPECT_TRUE(ArrayRef<unsigned>() == ArrayRef<unsigned>());
>>>>  }
>>>>
>>>> +TEST(ArrayRefTest, ConstConvert) {
>>>> +  int buf[4];
>>>> +  for (int i = 0; i < 4; ++i)
>>>> +    buf[i] = i;
>>>> +
>>>> +  static int *A[] = {&buf[0], &buf[1], &buf[2], &buf[3]};
>>>> +  ArrayRef<const int *> a((ArrayRef<int *>(A)));
>>>> +  a = ArrayRef<int *>(A);
>>>> +}
>>>> +
>>>>  } // end anonymous namespace
>>>>
>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>>
>>>
>>>
>>
>>
>> --
>> ~Craig
>>
>
>


-- 
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140830/bcdfa9b6/attachment.html>


More information about the llvm-commits mailing list