[Issue 3070] New: Implicitly conversion on function call
Robert Fraser
fraserofthenight at gmail.com
Mon Jun 15 09:06:13 PDT 2009
d-bugmail at puremagic.com wrote:
> http://d.puremagic.com/issues/show_bug.cgi?id=3070
>
> Summary: Implicitly conversion on function call
> Product: D
> Version: 2.030
> Platform: x86
> OS/Version: Windows
> Status: NEW
> Severity: trivial
> Priority: P2
> Component: DMD
> AssignedTo: nobody at puremagic.com
> ReportedBy: k0l0b0k.void at gmail.com
>
>
> I have next pieces of code:
>
> struct MyString
> {
> public MyString opAssign(string pStr)
> {
> throw new Error("");
> }
>
> public MyString opCast(string pStr)
> {
> throw new Error("");
> }
>
> public MyString opImplicitCast(string pStr)
> {
> throw new Error("");
> }
>
> this(string pStr)
> {
> throw new Error("");
> }
> }
>
> void foo(MyString pStr)
> {
> }
>
> int main(char[][] args)
> {
> MyString str = "test1";
> str = "test2";
> foo(str);
> foo("test3"); // error "Error: cannot implicitly convert expression
> ("test3") of type immutable(char)[] to MyString
> return 0;
> }
>
>
> This is just sample. So, my trouble is to pass string argument to foo() with
> implicit conversion to MyString struct (I also tried class, with no results).
> I'm googled by this topic, but nothing found. Can you help me? This is not a
> bug (I think), but the question - how I can implicitly convert from one object
> to another in the as C++ does (C++ will call constructor with parameter type
> "string"). How I can make same in D?
>
> Thanks in advance!
>
If you want quicker responses to questions, try the newsgroups or IRC.
Bugzilla is usually for bugs :-). Anyway, user-defined implicit casting
is not implemented in (any version of) D yet. Sorry!
More information about the Digitalmars-d-bugs
mailing list