Re: opAssign and references

2012-01-31 Thread Trass3r
I am using DMD 2.057 on Ubuntu 64bit. Are you sure that it does not work? Can anyone reproduce the error? import std.variant; struct Foo { Variant a; ref Variant refA(){ return a; } } void main(){ Foo f1; f1.refA() = 24; } Compiles fine on Ubuntu x64 with

Re: i18n

2012-02-03 Thread Trass3r
I deduce so that there is no official support for that. If it's, it's a pain. Pain? Writing such a system can be done in a couple of lines.

Re: linker @ meaning and how to compile static libs

2012-02-03 Thread Trass3r
The main question is how do I either compile the library with the right version suffix (@12) Or get the linker to use the right version suffix (@8) That's no version suffix. It's the number of bytes of the arguments IIRC. Windows calling convention.

Re: i18n

2012-02-03 Thread Trass3r
Thanks a lot, So I just need to detect user locale using How to do that? You can always use the functions you would use in C.

Re: Struct inheritance

2012-02-04 Thread Trass3r
So why not just use classes? I've understood it as there may be a performance gain by using structs over classes, and in my program Point and Coordinate are used heavily. The other big difference is value vs. reference type. You can use alias this to achieve something like struct

Re: Templated aliases name in compilation error output

2012-02-12 Thread Trass3r
dmd simply doesn't keep those information about aliases.

Re: Compiling Lua for D

2012-02-15 Thread Trass3r
LuaD works fine, but I'd rather learn to compile stuff like this myself. It will get me further in the long run^^ Try to switch to gdc. dmc, optlink Co. must die a bloody death anyway :)

Re: D for game Development

2012-02-15 Thread Trass3r
Can I use OpenGL or DirectX with D? Of course. E.g. there's a D1 game engine: http://yage3d.net I think http://3d.benjamin-thaut.de/?p=16 is D2, but it's rendering code only.

Re: Compiling Lua for D

2012-02-15 Thread Trass3r
I guess GDC uses COFF? That would definitely be handy... although I couldn't compile and debug from VS anymore in that case, and that would be unfortunate^^ Just recently Rainer added gdc support to cv2pdb.

Re: Everything on the Stack

2012-02-20 Thread Trass3r
scope auto e1 = new EntryInt(); Foo = e1.toFoo(); You don't need auto there. And scope is deprecated, use std.typecons' scoped

Re: Executable size when compiling with GDC

2012-02-21 Thread Trass3r
Lots of symbols and stuff. You can get it down with -ffunction-sections -fdata-sections -Wl,-s,--gc-sections Phobos should also be compiled with -ffunction-sections -fdata-sections to get the whole effect though.

Re: Make alias parameter optional?

2012-02-25 Thread Trass3r
void foo(T, T2, alias thing = (){})(T a, T2 b) { thing(); } void bar(){} void main() { foo!(int,int,bar)(1,2); foo(1,2); }

Re: produced binary is quite big

2012-02-26 Thread Trass3r
You may try -L--gc-sections (in case of gdc in combination with -ffunction-sections -fdata-sections) and -L-s

Re: Random behavior using a wrapped C library

2012-02-28 Thread Trass3r
http://d.puremagic.com/issues/show_bug.cgi?id=5570

Re: Random behavior using a wrapped C library

2012-02-28 Thread Trass3r
A blocker for using x64 on linux then. Use gdc. Better codegen anyway.

Re: Dumb question about git

2012-03-01 Thread Trass3r
OK, so what's the right way to do it then? I have some changes in a branch, but master has been updated since, so I want to merge in the latest updates so that the branch changes are compatible with the latest code. I use a quite crappy way to rebase my feature branch: git stash git checkout

Re: htod - const

2012-03-06 Thread Trass3r
Why is 'const' removed? cause htod sucks. D1 didn't have const and htod wasn't updated for ages.

Re: htod - const

2012-03-06 Thread Trass3r
Am 06.03.2012, 20:13 Uhr, schrieb maarten van damme maartenvd1...@gmail.com: I wouldn't say that it sucks. It has really helped a lot in porting some simple header files. It goes terribly bad on the more complex though. Sadly, using regular expressions is much more efficient. At least

Re: preprocessor pass equivalent?

2012-03-15 Thread Trass3r
There's a pull request to help with debugging string mixins: https://github.com/D-Programming-Language/dmd/pull/426

Re: Vector operations optimization.

2012-03-22 Thread Trass3r
What is the status at the moment? What compiler and with which compiler flags I should use to achieve maximum performance? In general gdc or ldc. Not sure how good vectorization is though, esp. auto-vectorization. On the other hand the so called vector operations like a[] = b[] + c[]; are

Re: anything that would provide support for zip filesystem?

2012-03-22 Thread Trass3r
I guess Tango provides something like that via the VFS stuff. https://github.com/SiegeLord/Tango-D2 resp. https://github.com/mtachrono/tango

Re: Vector operations optimization.

2012-03-23 Thread Trass3r
The flags you want are -O, -inline -release. If you don't have those, then that might explain some of the slow down on slicing, since -release drops a ton of runtime checks. -noboundscheck option can also speed up things.

Re: D Dll injection problem

2012-03-27 Thread Trass3r
Maybe it's because I have no def file. Very possible. Just pass it to dmd like the other files. Or try the new -shared flag.

Re: D Dll injection problem

2012-03-27 Thread Trass3r
I inject it but it returns nothing and the App(where the dll is injected) is hanging( not responding). Could you try it maybe? I would like to know whether it's a Problem with D or with me. Are dlls without injection working?

Re: this() const

2012-04-15 Thread Trass3r
Am 15.04.2012, 21:20 Uhr, schrieb sclytrack sclytr...@hotmail.com: this( const size_t step) const { this.step = step; } Error: cannot modify const/immutable/inout expression this.step Is this the expected behavior? Thanks. Yep.

Re: How to pass list of strings as compile-time parameters?

2012-04-24 Thread Trass3r
bool compareByMemb(string[] ignores, T)(T obj1, T obj2) { foreach (name; __traits(getAllMembers, T)) { ... } In this particular case you could try foo(T, U...)(T obj1, T obj2, U ignores)

Re: undefined reference - Derelict2

2012-05-07 Thread Trass3r
Though I was under the impression that the new Derelict2 hierarchy / d interface files in Derelict2/import reduced the neccesity for command line arguments, that is a Derelict related question. You may try to use --chatty and compare the output.

Re: std.mmfile issues

2012-05-14 Thread Trass3r
I found out that OpenFileMapping is not needed and CreateFileMapping is sufficient. I managed to code this with std.c.windows only however MmFile is not working even with simplest examlple maybe a bug under win 7? Possible. Feel free to file a bug report or create a pull request.

Re: align(16) struct member throws an exception with movdqa

2012-06-11 Thread Trass3r
test code please

Re: align(16) struct member throws an exception with movdqa

2012-06-11 Thread Trass3r
import std.stdio, core.simd; void main() { int4 v; } Internal error: ..\ztc\cgcod.c 1447 Building Debug\dtest1.exe failed! Works fine on Linux. Maybe the 32Bit check doesn't work for Windoze? -m32 on Linux yields Error: SIMD vector types not supported on this platform

Re: align(16) struct member throws an exception with movdqa

2012-06-11 Thread Trass3r
I think it has been fixed for the next version of DMD already. Any idea why align isn't letting me use movdqa? Cause align doesn't work the way you think it does. In fact I still don't understand how it works at all.

Re: Casting the Result of splitter() into a string array

2012-06-17 Thread Trass3r
If you want to convert a range to an array, use std.array.array This is a constant source of confusion and it also is a crappy design to use a function in a totally different module for this purpose imho. Can't these Result types get an eval() method and/or be made implicitly convertible to

Re: Lack of warning messages

2012-06-21 Thread Trass3r
A notice for some unused imports would be great too... You could create a brute-force tool. Rip off an import statement at a time and see if it still compiles. One could probably modify DustMite to do that.

Re: Debugging compiler crashes?

2012-07-02 Thread Trass3r
dmd: glue.c:542: virtual void FuncDeclaration::toObjFile(int): Assertion `semanticRun == PASSsemantic3done' failed. Aborted wouter@carillon:~/code/d/DustMite$ ... and I'm not yet that fluent in D to understand what's going on. Any ideas? pass dustmite.d before dsplit.d known problem, but the

Re: Debugging compiler crashes?

2012-07-02 Thread Trass3r
... the order of files matters? Yuck. Yep it's a bug.

Re: use of Class Invariants

2010-12-08 Thread Trass3r
That is what I am missing, a stack trace. How do I see a stack trace? dmd1(win) Well tango includes stack traces if you import the right module. For D2/Win use http://3d.benjamin-thaut.de/?p=15

import inside a class overrides symbols imported in module scope?

2010-12-09 Thread Trass3r
It was quite hard to track that one down. In the following example the import statement was mixed into the class among other code so it wasn't as obvious as here. import std.traits; class Foo { import std.string; static assert(isNumeric!int); } foo.d(6): Error: template

Re: How to get 'import' clauses from d file?

2011-01-15 Thread Trass3r
I'm trying to make some home-grown d build system, but and one of my tasks is to get module dependencies. Yes, I know about -deps DMD switch, but it works when all needed modules are given to compiler. But if some dependencies absent compiler just aborts with error module foo is in file

Re: Assigning Interface to Object

2011-01-15 Thread Trass3r
module testObj; public interface testInterface { void someMethod(); } public class testObj { Object someCaller; this(Object caller) { someCaller = caller; } this(testInterface tI, bool xyz) { someCaller = tI; } }

Re: Link with C static library

2011-01-16 Thread Trass3r
Should I change my C compiler? Or, there is another way to covert static library from COFF to OMF?? coff2omf should work, but unfortunately it isn't free. coffimplib is free, but can only convert import libraries. You may try to use objconv: http://www.agner.org/optimize/#objconv Though it

Re: Link with C static library

2011-01-16 Thread Trass3r
I used it to convert static library, and it says the input library is not import library. That's coffimplib. coff2omf is in the Extended Utilities Package which is sold for 15$. Many existing C libraries are not written as dynamic libraries. Some C libraries can be compiled as DLL, but in

Re: Development blog? D news?

2011-01-17 Thread Trass3r
http://planet.dsource.org/ Problem is: it's not very active, and also, apparently people don't know about it :-) Yeah haven't heard of it in all those years!

Re: Using D libs in C

2011-01-17 Thread Trass3r
Also make sure you use globals properly if you use them (shared, __gshared, etc.)

Strange phobos errors

2011-01-19 Thread Trass3r
. Has anybody else encountered this? (dmd 2.051) I already disabled unittests but this didn't help. (my code is at http://bitbucket.org/trass3r/cl4d)

Re: Strange phobos errors

2011-01-19 Thread Trass3r
http://d.puremagic.com/issues/show_bug.cgi?id=5373

Re: Assigning Interface to Object

2011-01-20 Thread Trass3r
Object is only the base class for all D classes. Interfaces may also represent COM objects or C++ classes, which are not subclasses of Object. Can't the compiler check if it is a normal D interface and then allow (implicit) casts to Object?

Re: Source code annotations alla Java

2011-01-20 Thread Trass3r
class Foo { int x; int y; int z; mixin NonSerialized!(z); } Had a quick look at http://dsource.org/projects/orange/browser/orange/serialization/Serializable.d 1. How come it works without 'mixin' in the template declaration (mixin template NonSerialized)? 2. What if

Re: Source code annotations alla Java

2011-01-20 Thread Trass3r
template foo (args...) {} Does that work with aliases? Well at least the following compiles: template Foo(T...,) { int i; } int a,b; alias Foo!(a,b) f;

Re: Assigning Interface to Object

2011-01-21 Thread Trass3r
Speaking of COM.. has anyone successfully used COM interfaces in D2? I once tried to create a DDraw proxy dll but I can't remember how good it worked. https://bitbucket.org/trass3r/ddrawproxy

Re: Anyone have a clue how to download the Orange repository?

2011-01-23 Thread Trass3r
The problem is it uses a Mercurial repository.

template this parameters

2011-01-25 Thread Trass3r
Why do they exist and why does typeof(this) strip constness? import std.stdio; struct S { const void foo(this T)(int i) { writeln(typeid(T)); } const void bar() { writeln(typeid(typeof(this))); } } void main() { const(S) s; (s).foo(1); S s2;

Re: template magic

2011-01-25 Thread Trass3r
2. What is the reason for Phobos defining param funcs as template params? Correct me if I'm wrong but there's no way to pass an arbitrary function to a function in a type-safe way. If you use pointers and casts you can't check if the passed function meets certain requirements (parameters, return

Re: template magic

2011-01-25 Thread Trass3r
How do you not pass them in a safe manner? If you are casting things, of course you don't get type safety. Yep, I was talking about non-template functions. Only way to pass an arbitrary function is via void*

shared library loader (wrapper for GetProcAddress Co)

2011-01-25 Thread Trass3r
I can't seem to find something like that in phobos. Is it missing or am I overlooking it?

Re: How can you read and understand the source of *naryFun in functional.d?

2011-01-29 Thread Trass3r
Save this somewhere or it will be lost here ;)

Re: C# interop

2011-01-30 Thread Trass3r
As Simen said, there was an attempt to create an IL backend but it hasn't been updated since Aug 2009 and even it compiled you probably wouldn't have much fun with it. You could try to use a C bridge. But even then, I don't see the benefit.

Re: Debugging D?

2011-02-06 Thread Trass3r
Are debug symbols compiled with -gc stored in a separate file? Visual Studio refuses to debug my things Nope. Plus you need to use cv2pdb to debug with Visual

Re: Invoke garbage collector?

2011-02-09 Thread Trass3r
However, I need the resources to be freed more quickly than the GC is apparently doing You could use scoped instances if you need to clean them up soon after creation.

Re: OpenGL in D2

2011-02-21 Thread Trass3r
I've found a few OpenGL projects, like bindings (http://www.dsource.org/projects/bindings/) and derelict (http://www.dsource.org/projects/derelict/), but I still can't find any way to easily use or install them (for D2 on Ubuntu). Use derelict2 from svn and xfBuild. Then you just need to tell

Re: __gshared static versus static __gshared

2011-02-23 Thread Trass3r
http://d.puremagic.com/issues/show_bug.cgi?id=4419

%x and floats

2011-02-24 Thread Trass3r
Why doesn't this work: import std.stdio; void main() { float a,b=0; writefln(%x %x, a, b); } std.format.FormatError: std.format floating

Re: Ini parsing library in D ?

2011-02-28 Thread Trass3r
http://www.dprogramming.com/ini.php

Re: Version very simple?

2011-02-28 Thread Trass3r
Note that negation and logical and can basically be simulated: !bla - version(bla) {} else ... bla blub - version(bla) version(blub) {...}

Re: How-to manipulate a C array with D2 vector operations?

2011-02-28 Thread Trass3r
I am trying to implement a D2 function that has this C signature (it gets called from a C module and I cannot change the caller): extern(C) read_into(char *buffer, size_t buf_len); I would like to use D's vector (or array-wise according to TDPL) operations on buffer but I cannot find a way, how

Re: About const and C functions

2011-03-02 Thread Trass3r
Am 01.03.2011, 23:33 Uhr, schrieb bearophile bearophileh...@lycos.com: Do you know why DMD doesn't give a compilation error here? import core.stdc.stdio: sscanf; immutable int value = 5; void main() { sscanf(10.ptr, %d.ptr, value); } What's the D signature of sscanf?

Re: Iterating a typle tuple of templates

2011-03-04 Thread Trass3r
bearophile Wrote: It seems t is not useful... Yep, foreach over tuples is kinda messed up. Same with reference tuple foreach: http://d.puremagic.com/issues/show_bug.cgi?id=2411 Direct access doesn't work but accessing via [i] does.

Re: enum with classes/structs

2011-03-10 Thread Trass3r
... or does enumerations only support constant-expressions? Thanks! Yep, enum is a compile-time thing.

Re: Help passing D strings to C libs

2011-03-14 Thread Trass3r
I'm having trouble passing D strings (char[]) to SDL, in particular SDL_LoadBMP(), I keep receiving a segfault. Heres the code: void setImg(string path) { // concat null terminating char to string and cast to c type string when // passing to SDL_LoadBMP() path ~= \0; image =

Re: Best practice for strings across D1 and D2

2011-03-17 Thread Trass3r
nedbrek Wrote: 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)... You may also use versioned aliases. Just include the D2 code via a string mixin to

Re: Want to help DMD bugfixing? Write a simple utility.

2011-03-24 Thread Trass3r
Is there a copy of the official D grammar somewhere online? I wrote a lexer for my Compiler class and would love to try and apply it to another grammar. The official D grammar is spread among the specification. But I recall that someone compiled a complete grammar for D1 some time ago.

Re: object.d: Error: module object is in file 'object.d' which cannot be read

2011-03-27 Thread Trass3r
object.d: Error: module object is in file 'object.d' which cannot be read import path[0] = /etc/../../src/phobos import path[1] = /etc/../../src/druntime/import As you can see dmd.conf uses relative paths. That guide needs an overhaul. The easiest way is to copy the contents of the zip archive

Re: object.d: Error: module object is in file 'object.d' which cannot be read

2011-03-27 Thread Trass3r
object.d: Error: module object is in file 'object.d' which cannot be read Specify path to file 'object.d' with -I switch Could it be you also deleted the dmd.conf in the local dmd/linux/bin?

Re: correct way to create boiler plate code

2011-05-16 Thread Trass3r
string[] funcs = [tan]; calling mixin a compile time has the following error... Error 1 Error: variable func cannot be read at compile time C:\D\SVNProjects\trunk\xcellD\xcell1\trig.d 22 That's because funcs is mutable. Try to make it immutable or enum.

Re: correct way to create boiler plate code

2011-05-16 Thread Trass3r
foreach runs at runtime, while mixin is expanded at compile time. Not the whole truth though. foreach over tuples gets unrolled at compile time so you can do stuff like: // +=, -=, ... Vector opOpAssign(string op, U)(U s) { foreach (i, _; tuple) mixin(tuple[i] ~ op ~

Re: Memory corruption rant.

2011-05-17 Thread Trass3r
Could it be a stack corruption?

Re: status of shared-libs on Windows?

2011-05-19 Thread Trass3r
Am 19.05.2011, 22:28 Uhr, schrieb Graham Fawcett fawc...@uwindsor.ca: Hi folks, I've only used D on Linux so far, so I'm not clear on the current shared-library story on Windows. Consider an existing C++ application that can be extended by writing plugins, which are usually written in C or

Re: status of shared-libs on Windows?

2011-05-19 Thread Trass3r
(I've already successfully created and used Matlab .mex/.dll plugins with D)

Re: status of shared-libs on Windows?

2011-05-20 Thread Trass3r
Thanks, Trass3r et al! I'll give it a try in D, then. Of course you can't create 64Bit dlls though ;)

Re: web development in D

2011-05-21 Thread Trass3r
Have a look at the recent thread titled 'How To Dynamic Web Rendering?' Adam Ruppe has created a package for web development with D and it seems to work like a charm.

Re: web development in D

2011-05-22 Thread Trass3r
Very interesting benchmarks!

Re: What are the reasons for this syntax??

2011-05-24 Thread Trass3r
Read about import types here: http://www.digitalmars.com/d/2.0/module.html#ImportDeclaration

Re: Linking with/Debugging static C/C++ libraries

2011-05-30 Thread Trass3r
Am 30.05.2011, 04:09 Uhr, schrieb Jeff Slutter mrmust...@gmail.com: One of the things that's important to us is being able to link against some existing C/C++ static libraries (built with VS 2008, so PE COFF format). Good luck with that. DLLs are no problem but static libraries are another

Re: Problem with dsss 0.78 rebuild error: out of memory

2011-06-07 Thread Trass3r
Both tools are dead.

Re: Is it reasonable to learn D

2011-06-07 Thread Trass3r
Am 07.06.2011, 23:02 Uhr, schrieb Fabian contact-...@freenet.de: I can't see any changes on this web page: http://www.dsource.org/projects/dwt/wiki That doesn't mean anything. Development sometimes takes place behind the scenes or in forks at github or bitbucket.

Re: Is it reasonable to learn D

2011-06-07 Thread Trass3r
- The D compiler has only bad code optimization Yep, but there is LDC and GDC which use LLVM and GCC as backends respectively. - There are no maintained GUI libraries I wouldn't agree with that. Some people are still working on GtkD, QtD and DWT. - The development of the compiler is

Re: Is it reasonable to learn D

2011-06-08 Thread Trass3r
http://h3.gd/code/nucleus/ I lol'd at the suggestion to upgrade my FF4 to a modern HTML5-compliant browser. ^^ No problems with Opera.

Re: Undefined function, even though imported

2011-06-13 Thread Trass3r
Importing it means dmd knows about the function and emits a call but doesn't automatically generate the function code. This is only done if you also pass the file containing it to dmd.

Re: Undefined function, even though imported

2011-06-13 Thread Trass3r
Shouldn't the linker/compiler be able to solve this on its own then? Use rdmd or xfBuild to automatically compile all needed modules.

Re: Undefined function, even though imported

2011-06-14 Thread Trass3r
Am 14.06.2011, 02:43 Uhr, schrieb Loopback elliott.darf...@gmail.com: Thanks for all the answers! Seems like rdmd did the trick. I don't see why this isn't built in to dmd though No one does ;) I've also stumbled upon an additional error with the win32 DirectX bindings, but this seems D

how to reduce a debug symbol error?

2011-06-28 Thread Trass3r
Starting my cl4d executable with 'gdb main -readnow' results in Reading symbols from main...expanding to full symbols...Die: DW_TAG_type_unit (abbrev 4, offset 0x6a) parent at offset: 0xb has children: FALSE attributes: DW_AT_byte_size (DW_FORM_data1) constant: 16 DW_AT_type

Re: how to reduce a debug symbol error?

2011-06-28 Thread Trass3r
First: are you compiling *all* modules with -gc rather than -g? Ah ok, somehow I was mislead into thinking that the gdb patches allow you to use -g. It works now though line numbers are more messed up than I'm used to from cv2pdb + VS. There I only have the usual problems with mixins but

Re: Dynamic multidimensional arrays

2011-07-05 Thread Trass3r
If you want it to by dynamic all the way, you need to put the dimensions in the parens like above. Personally, I _never_ put them in the brackets, even when the dynamic array has just one dimension. It's just simpler to always put them in the parens and not worry about it. Maybe we should

Re: translate a macro to D

2011-07-06 Thread Trass3r
Am 06.07.2011, 16:15 Uhr, schrieb teo teo.ubu...@yahoo.com: What is the best way to translate following to D? #define MAKELONG(a, b) \ ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) 16)) The point is I would like to be able to use that at compile-time. The macro is supposed to define

Re: Declaring a D pointer to a C function

2011-07-12 Thread Trass3r
You should declare the function pointer without the extern(C). Example: alias int function(void* test) FTInitFunc; extern(C) int foo(void* test){ } FTInitFunc foo_ptr = foo; This worked for me. That's a bug.

template instance cannot use local 'f' as parameter to non-global template

2011-07-12 Thread Trass3r
Is this a bug? If not, how do you make it work? void h() {} class Bla { mixin wrap!h; } mixin template wrap(alias f) { void blub(alias g = f)() { } } void main() { Bla b = new Bla(); b.blub(); } test.d(18): Error: template instance cannot use

Re: Running DMD tests

2011-07-12 Thread Trass3r
Am 13.06.2011, 23:55 Uhr, schrieb Peter Alexander peter.alexander...@gmail.com: I'm trying to run the test suite for DMD, but I'm running into issues. Do I need to set up my environment differently to run dmd in development? How can I get around this? To quote IRC: In theory it's simple:

Re: Running DMD tests

2011-07-12 Thread Trass3r
Am 12.07.2011, 20:57 Uhr, schrieb David Nadlinger s...@klickverbot.at: or use your normal system-wide installation which probably has all the paths set up correctly by specifying the DMD variable: »make DMD=/usr/local/bin/dmd«. Thanks a lot for that hint!

Re: Declaring a D pointer to a C function

2011-07-12 Thread Trass3r
Is this going to be fixed any time soon? Allowing callbacks with D calling convention where a C callback is expected should be an error, and this is like the 10th time I've ran into this bug. http://d.puremagic.com/issues/show_bug.cgi?id=3797

Re: template instance cannot use local 'f' as parameter to non-global template

2011-07-13 Thread Trass3r
Anybody an idea?

Re: template instance cannot use local 'f' as parameter to non-global template

2011-07-13 Thread Trass3r
Am 13.07.2011, 16:02 Uhr, schrieb Steven Schveighoffer schvei...@yahoo.com: void h() {} class Bla { mixin wrap!h; } mixin template wrap(alias f) { void blub(alias g = f)() { g(); } } As a workaround, is there a reason you need blub to be

  1   2   3   4   >