True. Just as plain old C-style casts. And even if C-style casting will most of the time work as expected in C++, this is not something a C++ programmer should reasonably do.
In fact, this is not easy in C++ to deprecate language features that exists in C. The only keyword I know which was deprecated is 'register' (in C++ 17). But it has been reserved and this is something C++ specific.
Also, we are now in C++ 17. And as other posters pointed it, there are very old functionalities and features in C++ that, if used, will one day or another, reveal bugs, security issues... Unfortunately nothing can prevent anyone to use them, but this is at the author's own and now well known risk.
4 hours ago, JulieMaru-chan said:If you're going to argue that any language feature that can be used incorrectly in dangerous ways is a problem, then C++ certainly isn't a language you would turn to.
I guess, and to my own opinion, that this is wrong. Why ? C++ (and C) are languages that are not safe by conception. Pointers allow to use the language in dangerous ways. Letting the programmer manages the memory allow that too. Unsafe functions allow it too. And inherently, all common security risks/bugs you are aware of (buffer overflow...) are common security issues in programs written in C (and C++) most of the time due to mistakes when programming (sprintf is a well-known open door to such attacks). And such uses are responsible of the majority of security risks in most of the programs. So yes, these are problematic and should not be used.
There are languages that, by design, prevent as most as possible to be used 'badly'. Java and C# are examples of such languages (less for java from what I know). But clearly, system languages as C and C++ are languages that allow to be used in dangerous ways. A simple example of this is that you can do 'hacking' with these languages. C++ protects things a bit more, but then confine to C++.
Just as a little example. Imagine you release a game, some kind of MMORPG with let say 100K players. Each player pays every months for playing your game. Each player pays even more to get some upgrades. And now, your programs make the use of sprintf, scanf (and many other well known dangerous functions). Everything is fine until one day a big attack happens on your servers and clients, massively and takes credit card numbers of all your clients...
And even if that never happens, doing things well (mainly if you are aware of it), is important, just like you stated for the consistency in your previous post