Re: How to Unqual an array?

2019-11-17 Thread James Blachly via Digitalmars-d-learn

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


Re: How to Unqual an array?

2019-11-16 Thread Steven Schveighoffer via Digitalmars-d-learn

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


Re: How to Unqual an array?

2019-11-16 Thread Anonymouse via Digitalmars-d-learn
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.)





Re: How to Unqual an array?

2019-11-16 Thread James Blachly via Digitalmars-d-learn

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.





How to Unqual an array?

2019-11-16 Thread James Blachly via Digitalmars-d-learn
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?