Why? If anything you will learn more about the types of bugs that lead to security issues, and thus gain a better understanding of how to avoid them.
I feel like "security" is the new "think of the children" phrase these days.
- Use references for modifiable parameters. No need to check for null
- Templates, enum classes, const/constexpr, inline calls instead of preprocessor macros
- Use of RAII and smart pointers over manual memory management
> I feel like "security" is the new "think of the children" phrase these days.
It was nothing new. It was present since the early days in the form of languages like Mesa(1970), Modula-2 (1978), among others.
Just that developers got to forget about them when UNIX got out of the universities into the enterprise. Nowadays we pay for it as we discover how important it is to have secure software.
edit: typo (import => important )
I'm going to give a very controversial perspective here: Things like jailbreaks and homebrew on consoles are possible because of certain "security flaws" that are more common in languages like C and C++. If everyone used "safer" languages, wouldn't these become much rarer? If it weren't for this "insecurity", would our computing devices and software be even more locked-down and restricted against us and more control be put in the hands of large corporate entities or governments? Making software more secure against malicious attackers also makes it more secure against those fighting for freedom and control. The world is not quite so black-and-white...
Using C++ as if it were C but s/malloc/new/ and s/free/delete/ is certainly a good way to get security vulns. But as pjmlp mentioned, that isn't how you should be using C++ nowadays.
To put it in perspective, I code since the days C was UNIX only so I had the pleasure to know better designed languages for system programming, that sadly went out of fashion as UNIX spread into the enterprise.
Never ever do this in 2014. It is the path of writing unsecure code.
Modern C++ has better, more secure, approaches how to write code.
Leave C like coding to legacy code.