232 reputation
13
bio website nedprod.com
location Cork, Ireland
age
visits member for 2 years, 5 months
seen Mar 27 '13 at 22:02

My Personal website: http://www.nedprod.com/

My Commercial website: http://www.nedproductions.biz/

My Careers 2.0 page: http://careers.stackoverflow.com/nialldouglas/


Nov
9
awarded  Nice Answer
Sep
24
awarded  Autobiographer
Aug
20
awarded  Yearling
Jan
17
comment Did C++11 address concerns passing std lib objects between dynamic/shared library boundaries? (ie dlls and so)?
Sorry just realised that comment doesn't explain why mangling complexity is important. It's because of ABI breakage testing tools, the ones your repository runs to ensure ABI breakage hasn't happened for some commit or branch. Complex templates confuse their subtly broken demanglers, thus making the breakage detection tool useless. This problem is far less severe on the well documented Itanium (GCC) ABI, but it still occurs.
Jan
17
comment Did C++11 address concerns passing std lib objects between dynamic/shared library boundaries? (ie dlls and so)?
@DeadMG: You're right that simple, C macro like, templates are safe-ish in public APIs. Things get trickier with templated member functions, and trickier again with templates taking templated parameters. And things get much trickier with templated friend declarations. If you've ever had to write a C++ mangled symbol parser, you'll see what I mean: there's lots of recursion and with the MSVC mangling especially, dozens of special corner case exceptions. Hence, I stand by what I said, best avoid the lot in public APIs.
Jan
17
comment Did C++11 address concerns passing std lib objects between dynamic/shared library boundaries? (ie dlls and so)?
@Alessandro: The proposed C++ modules explicitly disables C macros. You can use templates, or nowt. The proposed interfaces are legal C++, merely autogenerated, and can be optionally precompiled for speed of reparsing i.e. don't expect any speedup over existing precompiled headers. The last two questions, I actually don't know: it depends :)
Jan
17
comment Did C++11 address concerns passing std lib objects between dynamic/shared library boundaries? (ie dlls and so)?
Personally, I'm actually expecting a substantial increase in compiler times. Traversing an intra-module AST quickly is very hard, and we'll probably need an in-memory shared memory cache of it. However, almost everything else that is bad gets better. BTW, header files are definitely staying around, the current C++ modules has interface files map 1-to-1 to header files. Also, auto-generated interface files will be legal C++, so a legacy header simply gets C macros filtered out and spat out as an interface files. Nice eh?
Jan
17
answered Did C++11 address concerns passing std lib objects between dynamic/shared library boundaries? (ie dlls and so)?
Jul
20
awarded  Teacher
Jul
20
answered How do you track bugs in your personal projects?