News for hackers. Stuff that matters.
Re:C++14 and SDL2: Managing Resources by aktau on Friday April 18, 2014 @02:03PM (#7610381)
I can barely imagine a more fitting love sonnet for good old (modern) C99/11. My eyes, dear $deity my eyes. I'm sure OP is a fantastic(ally) smart dev but I'm kind of glad I don't have to work with that.
Re:C++14 and SDL2: Managing Resources by dfbrown on Friday April 18, 2014 @02:27PM (#7610520)
This is no worse than anything else in the standard library. Writing generic template code is always ugly but once written you don't have to deal with the ugliness to use the resulting functions. It's not worth the complexity in most cases but if it's something general you're going to use a lot (and lots of C libraries have this idiom of Resource_Init Resource_Destroy function pairs) then it can be worthwhile.

Eigen is a quintessential example. It's some of the most complex and inscrutable template code out there but it makes writing numerical code in C++ almost as nice as matlab while also being extremely fast.

Re:C++14 and SDL2: Managing Resources by mattgreenrocks on Friday April 18, 2014 @02:18PM (#7610481)
Except it's not common code at all.

Want to look at some tasteful C++ code? Check out LLVM.

Re:C++14 and SDL2: Managing Resources by devcodex on Saturday April 19, 2014 @12:02AM (#7612560)
Haha I wouldn't call myself a smart dev, just one that's trying to learn how to write good library code. If you really want to make your eyes bleed look at the proposed implementation of just such a utility:

http://isocpp.org/files/papers/N3949.pdf

Behind that wonderful STL code lies some crazy code behind the scenes. Is it beautiful? You won't catch me taking that argument! But is it typesafe with minimal overhead and easy for the end user of the code to understand and use? That's the one that's most important. For all the complexity of the template function itself, using it comes down to this:

    auto window = sdl2::make_window("App Name", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);
Not an angle bracket in sight!
Re:C++14 and SDL2: Managing Resources by masklinn on Friday April 18, 2014 @02:31PM (#7610539)
Well the ugliness here comes from the creation of a completely generic wrapper generator for any (constructor, destructor) C pair. If you just want to wrap one pair, you can typedef on unique_ptr and you're done