This is a blog on my experiments with STL and Boost and what happens behind the scenes so as to make these libraries work more efficiently than what we think.
I also run an open source project called swissknifelib on GNU GPL license. You can go straight to the source here. This is a generic toolkit that provides a collection of handy generic tools for C++ application development. We have tried to make as many compile time choices as possible to make the code efficient and generic. So, this can also be a source of learning if you are interested in this area. Please contribute your ideas, suggestions or any scenario you work in where this toolkit needs improvement, or let us know if you find a bug.
My contribution to swissknifelib is mainly over Linux. If you are good at Windows/Android/iOS, or other OSs please contribute and grow the library.
If you are not familiar with template meta-programming, I would recommend reading up about template metaprogramming, template specialization, type traits, tag dispatching, etc before you start.
This page a sticky post that behaves like my welcome page. On my template metaprogramming page and generic programming page I have provided links to posts on the corresponding topics.
I also run an open source project called swissknifelib on GNU GPL license. You can go straight to the source here. This is a generic toolkit that provides a collection of handy generic tools for C++ application development. We have tried to make as many compile time choices as possible to make the code efficient and generic. So, this can also be a source of learning if you are interested in this area. Please contribute your ideas, suggestions or any scenario you work in where this toolkit needs improvement, or let us know if you find a bug.
My contribution to swissknifelib is mainly over Linux. If you are good at Windows/Android/iOS, or other OSs please contribute and grow the library.
If you are not familiar with template meta-programming, I would recommend reading up about template metaprogramming, template specialization, type traits, tag dispatching, etc before you start.
This page a sticky post that behaves like my welcome page. On my template metaprogramming page and generic programming page I have provided links to posts on the corresponding topics.
This comment has been removed by the author.
ReplyDeleteGood post on how boost allows you to have the cake and eat it too. (i.e. create code that performs efficiently without having to be an expert)
ReplyDeleteSome things which would make it easy for a reader to follow your article (assuming he/she's conversant with C++ but not so much with boost)
1) A usage example for the hand-coded solution
2) A usage example of coded using STL advance() and distance()
3) Simple comparison of how, where and why the efficiency comes from.
4) Use a code box to make the code standout and be the centre of focus in your post.
5) Code highlighting or numbering to discuss outside the code-box
URLs:
a) How to use code-boxes on blogger: http://ilook12.blogspot.com/2009/10/putting-code-box-on-blogger-posts.html
Hi Ravi,
ReplyDeleteLooks like you've got it started good on googlecode with ver-r7 already. Congratulations!!
Few points occurred to me as I was browsing through ver.r8:
1) Test code for trying out the swissknifelib
2) How are you thinking of packaging swissknifelib as a .a or .so library
3) Need to refactor namespace etc to get it into library mode. Most willing to take up this task.
bye,
Guru.