Why is BOOST_OS_WINDOWS defined on Linux
Hello,
Everything is in the title, the following code compiles and shows
"Windows" even though I'm running Fedora 28. I can't understand.
#include <iostream>
#include
On Thu, 3 May 2018 at 14:49 David Demelier via Boost-users < boost-users@lists.boost.org> wrote:
Hello,
Everything is in the title, the following code compiles and shows "Windows" even though I'm running Fedora 28. I can't understand.
#include <iostream>
#include
int main() { #if defined(BOOST_OS_WINDOWS) puts("Windows"); #endif }
I'm using Boost 1.66 with GCC 8.0.1.
Regards,
-- David
Hi David,
The correct way to check is not if BOOST_OS_WINDOWS is defined or not, but
whether it's non-zero or not.
#include <iostream>
#include
On Fri, 4 May 2018 at 01:57 David Demelier
Just curious, is there some coding convention in boost? I just realized predef is the only one component that I use which use .h header suffix instead of .hpp.
There are some rough guidelines here: https://www.boost.org/development/requirements.html The menu to the right, under Requirements and Guidelines contains a few related links. The relevant bit to your question is this; "Files intended to be processed by a C++ compiler as part of a translation unit should have a three-letter filename extension ending in "pp". Other files should not use extensions ending in "pp". This convention makes it easy to identify all of the C++ source in Boost." So, the .h files don't require a C++ compiler and could be used in C. -- chris
On Fri, May 04, 2018 at 11:54:41AM +0000, Chris Glover wrote:
On Fri, 4 May 2018 at 01:57 David Demelier
wrote: Just curious, is there some coding convention in boost? I just realized predef is the only one component that I use which use .h header suffix instead of .hpp.
There are some rough guidelines here:
Thanks, that is handy!
"Files intended to be processed by a C++ compiler as part of a translation unit should have a three-letter filename extension ending in "pp". Other files should not use extensions ending in "pp". This convention makes it easy to identify all of the C++ source in Boost."
So, the .h files don't require a C++ compiler and could be used in C.
Understood, thanks for that quick replies! Regards, -- David
On Fri, May 4, 2018 at 7:34 AM, David Demelier via Boost-users < boost-users@lists.boost.org> wrote:
On Fri, May 04, 2018 at 11:54:41AM +0000, Chris Glover wrote:
On Fri, 4 May 2018 at 01:57 David Demelier
wrote: Just curious, is there some coding convention in boost? I just realized predef is the only one component that I use which use .h header suffix instead of .hpp.
There are some rough guidelines here:
Thanks, that is handy!
"Files intended to be processed by a C++ compiler as part of a translation unit should have a three-letter filename extension ending in "pp". Other files should not use extensions ending in "pp". This convention makes it easy to identify all of the C++ source in Boost."
So, the .h files don't require a C++ compiler and could be used in C.
Understood, thanks for that quick replies!
Not just C. The Predef headers where designed to compile with C++, C, Objective C, and Objective C++. Essentially any language that uses the C preprocessor can use the Predef headers. -- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net
participants (3)
-
Chris Glover
-
David Demelier
-
Rene Rivera