http://d.puremagic.com/issues/show_bug.cgi?id=4542

           Summary: TDPL NVI example results in linker error
           Product: D
           Version: D2
          Platform: x86_64
        OS/Version: Windows
            Status: NEW
          Severity: major
          Priority: P2
         Component: DMD
        AssignedTo: nob...@puremagic.com
        ReportedBy: e...@atari8.info


--- Comment #0 from Adrian Matoga <e...@atari8.info> 2010-07-31 16:00:54 PDT ---
Trying an example from TDPL (p. 214) results in linker error.

Source:

import std.stdio;

interface Transmogrifier
{
    final void thereAndBack()
    {
        transmogrify();
        untransmogrify();
    }

private:
    void transmogrify();
    void untransmogrify();
}

class CardBoardBox : Transmogrifier
{
    override private void transmogrify()
    {
        writeln("transmogrify");
    }

    override private void untransmogrify()
    {
        writeln("untransmogrify");
    }
}

void main()
{
    (new CardBoardBox).thereAndBack();
}


Linker output:
OPTLINK (R) for Win32  Release 8.00.2
Copyright (C) Digital Mars 1989-2009  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
impl.obj(impl)
 Error 42: Symbol Undefined _D4impl14Transmogrifier12transmogrifyMFZv
impl.obj(impl)
 Error 42: Symbol Undefined _D4impl14Transmogrifier14untransmogrifyMFZv
--- errorlevel 2


The same issue occurs, when private is replaced with package.
protected and public do work.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to