Jump to content
Sign in to follow this  
  • entries
    88
  • comments
    117
  • views
    62393

Porting to C++ Part I: There and back again

Sign in to follow this  
dcosborn

239 views

After finding myself bogged down with design issues which would be easy to solve in C++, I finally decided to make the big switch. So a couple of days ago, I embarked on my quest to port 26,000 lines of C code. I started with the config and math systems, using accessor objects and templates... lots of templates. They both remain incomplete for now.

I'm now in the process of developing the logging system. I've managed to override clog and cerr with custom source buffers. The source distributes output to various sinks. Currently, I've got basic console, file, and message (box) sinks implemented. The concept is similar to what I had in C, with the addition of wchar_t support.

While writing the win32 implementations of the console and message sinks, I ran into the issue of how to deal with multiple platform implementations. In C, I would compile-in platform specific source files, chosen by the build system, which would provide implementations for platform-dependent functions. With C++, you would derive platform specific classes from an abstract base class. The problem was how to choose which implementation to instantiate at build-time. Suddenly I realized the awsome power of the abstract factory pattern! I had never really understood its usefulness before. Case closed.
Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!