[llvm-dev] Why StringRef is not a ArrayRef<char>

Ramkumar Ramachandra via llvm-dev llvm-dev at lists.llvm.org
Fri Nov 6 06:07:43 PST 2015


I think it's the same difference we have between int * and
ArrayRef<int>, for instance. If you have a raw pointer, you are
expected to keep track of the size out-of-band. In aggregate types,
size is part of the type, making it very difficult to confuse a [1 x
i8] with a [3 x i8]. Many people probably use the raw pointer as a way
to hold a reference to dynamically allocated memory, and as a
type-escape hatch.

On Thu, Nov 5, 2015 at 11:58 AM, Paweł Bylica <llvm-dev at lists.llvm.org> wrote:
> Hi,
>
> Why is StringRef not an ArrayRef<char> extension? That might simplify some
> interfaces.
>
> Cheers,
> Paweł
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>


More information about the llvm-dev mailing list