So You Want to Embed A Scripting Language in Your Application

Note: this article was originally written in 2005. I’m importing some missed content into my new site and this is one of those articles. Much of the information in this article is out of date, but it still has some relevance. To see my personal take on the best way to embed scripting in C++, checkout ChaiScript.



C++ Weekly - Ep3 Intro to clang-tidy



Move To jekyll

I’ve made the big move to jekyll static page hosting. This article is a test to make sure the rss feeds are set up correctly.



C++ Weekly - Ep2 Cost of Using Statics



C++ Weekly - Ep1 ChaiScript_Parser Initialization Refactor



ChaiScript 6 Years Later

It’s been a little more than a year since our last update.



Template Code Bloat Revisited: A Smaller make_shared

Back in 2008 I wrote an article on template code bloat. In that article I concluded that the use of templates does not necessarily cause your binary code to bloat and may actually result in smaller code! This ended up becoming one of my more significant articles and has been referenced on wikipedia.



FizzBuzz in ChaiScript with Function Guards

I was recently reminded of the old FizzBuzz programming test and thought I would share a version of it for ChaiScript. ChaiScript has a possibly little used feature that allows you to execute a ‘guard’ or test before the function is executed, to see if it matches certain criteria. We can take advantage of this to generate rather readable version of FizzBuzz.



Adding std::future support to ChaiScript

Yesterday I decided to look into adding std::future support to ChaiScript. To be fair future is the return value of several other higher level threading constructs, so we don’t want just “std::future,” we want enough support to make it usable.



Complex Object Initialization Optimization with IIFE in C++11

IIFE (Immediately-Invoked Function Expression) is a common tool used in JavaScript. The idea is to both define an anonymous function and call it in the same expression. The point is to produce a local scope for variables so they do not pollute the global scope.