If I have something like struct S(T) { T data; } I can't make a struct literal with int mystuff; someFunc(S(mystuff)); I have to use int mystuff; someFunc(S!(int)(mystuff)); Why is this?