www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - How to Unqual an array?

reply James Blachly <james.blachly gmail.com> writes:
I am trying to write templated code that will take a character array -- 
mutable, const, or immutable (string).


static assert(is(Unqual!(const char) == char));

(Succeeds)

static assert(is(Unqual!(const(char)[]) == char[]));

Error: static assert:  `is(const(char)[] == char[])` is false


Is the template trying to strip the qualifier from the [] rather than 
the char?
Nov 16 2019
parent reply James Blachly <james.blachly gmail.com> writes:
On 11/16/19 9:48 AM, James Blachly wrote:
 I am trying to write templated code that will take a character array -- 
 mutable, const, or immutable (string).
I am aware of isSomeString, but I am still curious about Unqual array from a learning perspective.
Nov 16 2019
next sibling parent Anonymouse <zorael gmail.com> writes:
On Saturday, 16 November 2019 at 15:20:26 UTC, James Blachly 
wrote:
 On 11/16/19 9:48 AM, James Blachly wrote:
 I am trying to write templated code that will take a character 
 array -- mutable, const, or immutable (string).
I am aware of isSomeString, but I am still curious about Unqual array from a learning perspective.
https://pastebin.com/f2FUAYQT is what I use, assuming I understand what you want. (run.dlang.io shortening seems to be down.)
Nov 16 2019
prev sibling next sibling parent Steven Schveighoffer <schveiguy gmail.com> writes:
On 11/16/19 10:20 AM, James Blachly wrote:
 On 11/16/19 9:48 AM, James Blachly wrote:
 I am trying to write templated code that will take a character array 
 -- mutable, const, or immutable (string).
I am aware of isSomeString, but I am still curious about Unqual array from a learning perspective.
Unqual for the most port unqualifies the *head* of the type. This only makes a difference in terms of pointers and arrays (where the tail can be qualified separately from the head). For all other types, the whole thing has it's qualifiers removed. This is not explicitly stated in the docs, and it may be an accidental result, but it's too late to change it now. It can be useful in some cases. -Steve
Nov 16 2019
prev sibling parent James Blachly <james.blachly gmail.com> writes:
On 11/16/19 10:20 AM, James Blachly wrote:
 On 11/16/19 9:48 AM, James Blachly wrote:
 I am trying to write templated code that will take a character array 
 -- mutable, const, or immutable (string).
I am aware of isSomeString, but I am still curious about Unqual array from a learning perspective.
Thank you both Steve and Anonymouse! Regarding Steve's comment -- this should be made clear in documentation no? Regarding Anonymouse's code snippet, I've definitely saved that for future. thank you. James
Nov 17 2019