170 reputation
5
bio website jamesmcnellis.com
location Redmond, WA
age 28
visits member for 4 years
seen May 22 at 16:46

I'm a C++ and generic programming aficionado, and the 25th legendary Stack Overflow contributor.

I am a senior engineer on the Visual C++ team at Microsoft, where I design C++ libraries and am responsible for the C Runtime (CRT). In my spare time, I'm working on the Boost-licensed CxxReflect native reflection implementation for the Windows Runtime.


May
6
comment Should one check for null if he does not expect null?
Your first paragraph is only half of the story: yes, if you use a null reference in C#, you will get an exception, whereas in C++ you will get undefined behavior. But in well-written C#, you are stuck with far more nullable references than in well-written C++.
Jan
3
comment Is it good practice to store framework runtimes under source control?
Why do you think that it burdens [the repository] with irrelevant history? More specifically, why do you think that history is irrelevant? If your code references those frameworks and libraries, it is very helpful to know which versions were being used at a particular revision in the repository.
Jul
16
comment Inheritance gone wrong
Eat all the bison? [I posted this previously but it was for some reason deleted, presumably by humorless jackasses.]
Jun
10
awarded  Critic
Jun
9
comment Use the terms “vector” or “array” in high level discussion of C++ code
I think I'd use "random access sequence."
Apr
15
comment Are C++ templates just a kind of glorified macros?
If you are referring to that form of preprocessing, then no, C++ templates are absolutely not just some sort of glorified macro.
Apr
15
comment Are C++ templates just a kind of glorified macros?
What is your definition of "preprocessing"? And of "compiling"? A sufficiently broad definition of "preprocessing" could include everything that a compiler does; after all, a compiler really just processes the source before it gets executed, no?
Feb
15
comment Which C# practices should be avoided in C++?
By "you have to release," you mean "you must make sure to always use RAII containers to ensure resources are released correctly," right? You should never have to explicitly release a resource.
Feb
8
awarded  Commentator
Feb
1
comment Why do we have postfix increment?
Well, the definition of "terse" is "smoothly elegant: polished" or "using few words: devoid of superfluity," both of which are generally a good thing when writing code. "Terse" doesn't mean "obscure, hard to read, and obfuscated" like many people think.
Feb
1
comment Why do we have postfix increment?
Why have either at all?
Jan
26
comment Property-coalescing operator for C#
??! is an operator in C++. :-)
Dec
14
comment Would you use C, today, for a software project?
No, but only because today I am not working on any projects for which C would be a good language choice. Ask me again tomorrow.
Dec
12
awarded  Teacher
Dec
10
comment Why is cleverness considered harmful in programming by some people?
On the other hand, if you write code as cleverly as you can, you then must learn to debug it, and in doing so you become more clever. Or something like that.
Nov
4
comment Is it ever ok to have an empty catch statement?
Wow, someone who actually uses D! :-P
Sep
15
awarded  Supporter
Sep
8
awarded  Autobiographer