Am Fri, 22 Jan 2016 11:32:30 +0000
schrieb Sebastiaan Koppe <m...@skoppe.eu>:

> On Friday, 22 January 2016 at 10:06:01 UTC, Johannes Pfau wrote:
> > defaultGetoptPrinter is not yet available in the phobos version 
> > used by GDC. GDC uses phobos version 2.066, 
> > defaultGetoptPrinter was added in 2.067.  
> 
> Thanks. I never know which version of this supports which version 
> of that. Any easy way of checking this? I mean, how can I tell 
> that gdc 5.3.0-1 supports phobos 2.066?
> 

The best way is running this code snippet:
---------------------------------------------------
import std.compiler;
import std.stdio;

void main()
{
    writefln("%s %s %s.%s (D%s)", name, vendor,
        version_major,
        version_minor, D_major);
}
---------------------------------------------------
You can also have a look at the std.compiler implementation if you want
to use the __VERSION__ and __VENDOR__ variables directly.

> I reckon other people run into these errors as well, and it would 
> be nice if there was a way of checking whether a function is 
> supported in gdc/ldc x.x.x Hmm. Sounds like a nice project with 
> git, libdparse and vibe.

Yes, this is really a common problem. I'd say the simplest way to check
is trying to compile the code with the matching DMD version (e.g.
2.066.1).

> What about the other errors though?

Same reason. The old getopt code can't handle the help strings and
therefore produces these error messages. This works:

---------------------------------------------------
import std.getopt;
void main(string[] args)
{
        bool time;
        string fileIn;
        string fileOut;

        getopt(
                args,
                "time", &time,
                "i|input", &fileIn,
                "o|output", &fileOut
        );
}

Reply via email to