On 2012-05-04 16:19, H. S. Teoh wrote:

Argh... this is really annoying. So I tried all sorts of combinations of
function pointer syntax in order to get the correct type for a ref
function that returns const(T), but couldn't. So I decided to let the
language tell me itself what the type is:

        import std.stdio;
        struct S {}
        ref const(S) func() { ... }
        void main() {
                auto fp =&func;
                writeln(typeid(fp));
        }

This program outputs:

        const(test.S)()*

So I copy-n-paste this type into the source:

        const(test.S)()* fp =&func;

If you use:

writeln(typeof(fp).stringof);

I get this:

const(S) function() ref

Which neither can't be used as a declaration.

--
/Jacob Carlborg

Reply via email to