C++ IDEs have also gotten much better, as well. In Visual Studio these days, you can hover over an identifier, and it'll tell you its actual type, regardless of how many levels of auto there are between it and the actual named type. And it works reliably on anything that is valid C++, no matter the complexity.
In fact, B had it as early as 1969, and it was 100% correct even on arbitrarily complex programs!
(It always inferred type "machine word", which was the only one that the language had.)
If you really can't live without it, there's always libgc.
The alternative might be polymorphic lambdas, which would require dynamic typing.
Polymorphic lambdas (which were added in C++14, in fact) don't require dynamic typing. They only require the ability to use template parameters for lambda arguments. In case of polymorphic lambdas, this is implicit (i.e. basically you can elide the type of the function parameter, and it will become a template parameter on the operator() for the type generated for that lambda).
You can definitely over-do auto typing to the point where a human can't figure out the types involved
Thing is, in most cases the human doesn't particularly care about the types involved. Provided that variables are named descriptively, I can look at a piece of code and figure out what it does, without having to determine whether "files" is a vector, a list or a deque, and whether the elements are raw, shared or unique pointers.
Every lambda is of its own unique type. Even if you have two lambdas with the same capture-list and parameters, they're still of different types.
It's a crying shame that C and C++ still haven't added safe arithmetic as part of the standard library (or in case of C, maybe even as part of the language, for the lack of operator overloading). Back when I first saw "checked" in C#, I wondered what this was supposed to be about, but I have since learned the wisdom of having it in the language.
This is not entirely true - they have added a bunch of C11 features in VS 2013.
VC++2013 added a bunch more stuff from C99, aside from the library. On the language side, it's mixing declarations with code (C89 mode was strict and would bark at any variable not at the beginning of the function), _Bool, compound literals, and designated initializers.
The main things still missing are "restrict", _Complex and VLAs. However, the official target is now C11 rather than C99, and C11 made VLAs an optional feature of the language, because of lackluster support and use.
It all depends on how bad and how accepted corruption is in any given society. In many, a public office is basically accepted as a seat in which to take bribes - it's the major perk of the job.
Nevertheless, this one came with the M2.
I don't think it really matters much who does it, so long as it's not the force that has to be maintained in the permanent state of thinking of other citizens as their potential enemy (since when they're deployed, it's always in the country). I suppose from a Constitutional perspective, National Guard makes sense since you want it to be a state-level force, otherwise it will be shot down as Federal overreach. There are also State Defense Forces, at least in some states.
For those very rare kinds of scenarios, I would actually be okay with just calling in the military (they should have some people trained in crowd control etc anyway, since that's a large part of overseas deployments these days). The problem with police SWAT teams is that they're, well, police. They don't have anything else to do, but you have to keep them around, so you find them something to do. And if you don't, they'll do it themselves.
Reducing the number and making one responsible for a larger geographic area would work in theory (so long as it's large enough that they are not out of proper work), but then people might start complaining about reaction times.
And because something happened once in the history of this country, every police department in every count should have one?
I wonder what they're going to do with it when the mentally ill person in a bulldozer doesn't show up? Kids with toys get bored.
It's not in this list, because it only goes back two years, but it made newspaper headlines when a SWAT team in South Carolina got themselves an M113A1 with an MG turret back in 2008. It was also on the 1033 program, so we should see it there once they get more data (their FOIA request goes all the way back to 2001).
Of course, maybe there are more there, and on that list, but it's hard to tell because they don't list models. E.g. what is "ONLY COMPLETE COMBAT/ASSAULT/TACTICAL WHEELED VEHICLES"? or "MINE RESISTANT VEHICLE"? And I don't think that the MG would have a separate line item if it's mounted in standard configuration...
On a side note, try searching for "MACHINE GUN" in the list.