> The number of things that are not in the C++ STL and that are in Java Standard Library ...
Read once again, first your statement, and then the response:
|> Nice, but all these things are in Java, e.g. in Guava libraries|
>> No, they are not. Guava is a very useful library for Java programmers; primarily because the containers and iterators in Java suck big time. But it can't do even a fraction of what the C++ standard library can do.
And if you still do not understand what is being talked about, (all these things refers to std::function() / std::bind(), std::iterator_traits<> etc., things that are woefully lacking in the Java Standard Library), which you incorrectly claimed were all there in the Guava library, what the term 'it' refered to, go back and read a third time.
> Without that constraint Java's generics would be probably something ...
The preposterous earlier claims were on what the so-called generics in Java are. Not on what it probably could (or rather should) have been.
> I've only used generics in C# and I've not yet started learning templates yet in C++,
> though they do look very similar to C# generics/interfaces at a first glance.
>> They look similar, they are used for the similar things
No they are not used for similar things. There is some commonality in that .NET generics and C++ templates are both used for generic programming. C# generics have far greater expressive power than the caricature of generics that Java has.
In stark contrast to Java, a comparison of .NET generics and C++ templates would not be entirely grotesque.