On Wed, 16 Mar 2011 02:40:32 +0300, nedbrek <[email protected]> wrote:
Hello,
I have some wrappers for C functions which I am exporting to D.
For D1, I can just use char*.
For D2, I get compiler errors when I try to assign string constants to my
char* variables. It seems the best way is to make them immutable(char).
1) If I make the functions take immutable(char), will that cause future
problems when people want to pass in things besides string constants?
2) What is the best way to make the same declarations work for D1 and D2?
It seems everything inside a "version" statement must parse correctly,
and
D1 doesn't want to parse "immutable(char)"...
Thanks!
Ned
There are a 2 solutions to this question:
- Const!(char)* worked for me (specialize as char* for D1, const(char)*
for D2. Too bad it's not in Phobos (might get added if requested, though).
- "void foo(in char* bar);" works, too. Use of "auto" will help a lot.
"in" implies const here.