Writing cross-platforms Types, Interfaces and Classes/Methods in C++

Posted by user827992 on Programmers See other posts from Programmers or by user827992
Published on 2012-06-29T20:20:39Z Indexed on 2012/06/29 21:23 UTC
Read the original article Hit count: 386

Filed under:
|

I'm looking for the best solution to write cross-platform software, aka code that I write and that I have to interface with different libraries and platforms each time.

What I consider the easiest part, correct me if I'm wrong, is the definition of new types, all I have to do is to write an hpp file with a list of typedefs, I can keep the same names for each new type across the different platforms so my codebase can be shared without any problem. typedefs also helps me to redefine a better scope for my types in my code.

I will probably end up having something like this:

include
|-windows
| |-types.hpp
|-linux
| |-types.hpp
|-mac
  |-types.hpp

For the interfaces I'm thinking about the same solution used for the types, a series of hpp files, probably I will write all the interfaces only once since they rely on the types and all "cross-platform portability" is ensured by the work done on the types.

include
|
|-interfaces.hpp
|
|-windows
| |-types.hpp
|-linux
| |-types.hpp
|-mac
| |-types.hpp

For classes and methods I do not have a real answer, I would like to avoid 2 things:

  • the explicit use of pointers
  • the use of templates

I want to avoid the use of the pointers because they can make the code less readable for someone and I want to avoid templates just because if I write them, I can't separate the interface from the definition.

What is the best option to hide the use of the pointers?

I would also like some words about macros and how to implement some OS-specifics calls and definitions.

© Programmers or respective owner

Related posts about c++

Related posts about cross-platform