[ https://issues.apache.org/jira/browse/MESOS-2211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14271949#comment-14271949 ]
Cody Maloney commented on MESOS-2211: ------------------------------------- +1 for `#pragma once`. It isn't standard C++, but every C++11 compiler supports them (And some that don't support C++11) Major improvements - Hard to mess up (There are special shortcut parsing paths around #pramga once and include guards inside compilers which give a large compile speed improvement) - There aren't conflicts with C++ reserved identifiers (http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identifier) Underscore followed by upper case letter (our current scheme) is a language reserved keyword. > Include guard naming fixup > -------------------------- > > Key: MESOS-2211 > URL: https://issues.apache.org/jira/browse/MESOS-2211 > Project: Mesos > Issue Type: Bug > Reporter: Till Toenshoff > Priority: Trivial > Labels: newbie > > Triggered by a comment in a review request, I noticed that we currently have > no consistent style for naming include guards. > Examples: > include/mesos/resources.hpp: {{#define __RESOURCES_HPP__}} > include/mesos/executor.hpp: {{#define __MESOS_EXECUTOR_HPP__}} > include/mesos/mesos.hpp: {{#define __MESOS_HPP__}} > I think the **right** way would be stating the path and include file name > within the guard, so the above at fault become: > include/mesos/resources.hpp: {{#define __MESOS_RESOURCES_HPP__}} > include/mesos/mesos.hpp: {{#define __MESOS_MESOS_HPP__}} > Everything from include/XXX should have a __XXX_ prefix in its guard name, > anything from src/XXX should have a __XXX_ prefix. This should also apply to > multiple folder levels; e.g. include/XXX/YYY/FOO should have a __XXX_YYY_FOO > prefix. -- This message was sent by Atlassian JIRA (v6.3.4#6332)