Add macro to determine compiler family
Keep #if and indents consistent
Set up code branches based on compiler family and mark TODOs