Re: svn commit: r228878 - head/include

2011-12-30 Thread David Chisnall
On 30 Dec 2011, at 16:52, Sean C. Farley wrote:

>> My quick googling didn't show anything at all about the C++ standard and 
>> stdbool.h or __bool_true_false_are_defined.  It was probably originally set 
>> because bool, true, and false are all C++ keywords so certain code that 
>> wanted to ifdef on them didn't also need to check __cplusplus.
> 
> I did not find anything definitive either.

It's usually a better idea to check the spec than Google...

stdbool.h is not part of the C++ standard, and so it is free to contain 
anything in C++ mode, just as any other non-standard header is.  The  
header is defined by the C++11 spec as containing JUST the 
__bool_true_false_are_defined macro.  The purpose of this header in C++ mode is 
to allow the inclusion of C++ headers that expect to be able to use true and 
false and guard this by the use of the __bool_true_false_are_defined macro.

David___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r228878 - head/include

2011-12-30 Thread Sean C. Farley

On Fri, 30 Dec 2011, Ed Schouten wrote:


Hello Sean,

* Sean C. Farley , 20111230 03:54:

I just thought of this while reviewing the change:  should
__bool_true_false_are_defined be set only if __cplusplus is not set?
It should be set for C99, but I wonder if it should be set for C++.


Even if the C++ standard doesn't mention it at all, I think it doesn't
mean it is forbidden to define it. It starts with __[a-z], so it is in
the reserved namespace.


I am fine with it.  I found many variations of stdbool.h with some 
wrapping __bool_true_false_are_defined within the __cplusplus check 
(e.g., glibc) and some that did not.  glibc may have it because 
stdbool.h is included from cstdbool and stdbool.h in 
/usr/include/c++/4.2/tr1/.



Also, is there a style requirement that the guard for a header file
be based off of the name of the file?  I did not see anything obvious
for this within style(9), but I am curious.


I am not aware of this.


I am not aware of it either, hence, my question.  It was just something 
to which I have grown accustomed.  Using __bool_true_false_are_defined 
as the guard works.


Sean
--
s...@freebsd.org
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r228878 - head/include

2011-12-30 Thread Sean C. Farley

On Thu, 29 Dec 2011, m...@freebsd.org wrote:


On Thu, Dec 29, 2011 at 6:54 PM, Sean C. Farley  wrote:

On Sun, 25 Dec 2011, Ed Schouten wrote:


Author: ed
Date: Sun Dec 25 20:15:41 2011
New Revision: 228878
URL: http://svn.freebsd.org/changeset/base/228878

Log:
 Remove unneeded guard.

 There is no reason why  needs an include guard. It is already
 protected by __bool_true_false_are_defined.

Modified:
 head/include/stdbool.h

Modified: head/include/stdbool.h

==
--- head/include/stdbool.h      Sun Dec 25 18:15:31 2011        (r228877)
+++ head/include/stdbool.h      Sun Dec 25 20:15:41 2011        (r228878)
@@ -26,9 +26,6 @@
 * $FreeBSD$
 */

-#ifndef _STDBOOL_H_
-#define        _STDBOOL_H_
-
#ifndef __bool_true_false_are_defined
#define __bool_true_false_are_defined   1

@@ -44,5 +41,3 @@ typedef       int     _Bool;

#endif /* !__cplusplus */
#endif /* __bool_true_false_are_defined */
-
-#endif /* !_STDBOOL_H_ */



I just thought of this while reviewing the change:  should 
__bool_true_false_are_defined be set only if __cplusplus is not set? 
It should be set for C99, but I wonder if it should be set for C++.


My quick googling didn't show anything at all about the C++ standard 
and stdbool.h or __bool_true_false_are_defined.  It was probably 
originally set because bool, true, and false are all C++ keywords so 
certain code that wanted to ifdef on them didn't also need to check 
__cplusplus.


I did not find anything definitive either.

Also, is there a style requirement that the guard for a header file 
be based off of the name of the file?  I did not see anything obvious 
for this within style(9), but I am curious.


I think it's just common use to make sure different headers use a 
different include guard, so they only protect their contents, not any 
other file's.  The C standard only mentions the symbols bool, true, 
false, and __bool_true_false_are_defined in regards to stdbool.h.


Thank you.  I asked since I have only really noticed filename-based 
guards in the tree although not all are this way (i.e., bsdxml.h uses 
Expat_INCLUDED).


Sean
--
s...@freebsd.org___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Re: svn commit: r228878 - head/include

2011-12-30 Thread Ed Schouten
Hello Sean,

* Sean C. Farley , 20111230 03:54:
> I just thought of this while reviewing the change:  should
> __bool_true_false_are_defined be set only if __cplusplus is not set?
> It should be set for C99, but I wonder if it should be set for C++.

Even if the C++ standard doesn't mention it at all, I think it doesn't
mean it is forbidden to define it. It starts with __[a-z], so it is in
the reserved namespace.

> Also, is there a style requirement that the guard for a header file
> be based off of the name of the file?  I did not see anything obvious
> for this within style(9), but I am curious.

I am not aware of this.

-- 
 Ed Schouten 
 WWW: http://80386.nl/


pgpC2dauwZxru.pgp
Description: PGP signature


Re: svn commit: r228878 - head/include

2011-12-29 Thread mdf
On Thu, Dec 29, 2011 at 6:54 PM, Sean C. Farley  wrote:
> On Sun, 25 Dec 2011, Ed Schouten wrote:
>
>> Author: ed
>> Date: Sun Dec 25 20:15:41 2011
>> New Revision: 228878
>> URL: http://svn.freebsd.org/changeset/base/228878
>>
>> Log:
>>  Remove unneeded guard.
>>
>>  There is no reason why  needs an include guard. It is already
>>  protected by __bool_true_false_are_defined.
>>
>> Modified:
>>  head/include/stdbool.h
>>
>> Modified: head/include/stdbool.h
>>
>> ==
>> --- head/include/stdbool.h      Sun Dec 25 18:15:31 2011        (r228877)
>> +++ head/include/stdbool.h      Sun Dec 25 20:15:41 2011        (r228878)
>> @@ -26,9 +26,6 @@
>>  * $FreeBSD$
>>  */
>>
>> -#ifndef _STDBOOL_H_
>> -#define        _STDBOOL_H_
>> -
>> #ifndef __bool_true_false_are_defined
>> #define __bool_true_false_are_defined   1
>>
>> @@ -44,5 +41,3 @@ typedef       int     _Bool;
>>
>> #endif /* !__cplusplus */
>> #endif /* __bool_true_false_are_defined */
>> -
>> -#endif /* !_STDBOOL_H_ */
>
>
> I just thought of this while reviewing the change:  should
> __bool_true_false_are_defined be set only if __cplusplus is not set?  It
> should be set for C99, but I wonder if it should be set for C++.

My quick googling didn't show anything at all about the C++ standard
and stdbool.h or __bool_true_false_are_defined.  It was probably
originally set because bool, true, and false are all C++ keywords so
certain code that wanted to ifdef on them didn't also need to check
__cplusplus.

> Also, is there a style requirement that the guard for a header file be based
> off of the name of the file?  I did not see anything obvious for this within
> style(9), but I am curious.

I think it's just common use to make sure different headers use a
different include guard, so they only protect their contents, not any
other file's.  The C standard only mentions the symbols bool, true,
false, and __bool_true_false_are_defined in regards to stdbool.h.

Cheers,
matthew
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r228878 - head/include

2011-12-29 Thread Sean C. Farley

On Sun, 25 Dec 2011, Ed Schouten wrote:


Author: ed
Date: Sun Dec 25 20:15:41 2011
New Revision: 228878
URL: http://svn.freebsd.org/changeset/base/228878

Log:
 Remove unneeded guard.

 There is no reason why  needs an include guard. It is already
 protected by __bool_true_false_are_defined.

Modified:
 head/include/stdbool.h

Modified: head/include/stdbool.h
==
--- head/include/stdbool.h  Sun Dec 25 18:15:31 2011(r228877)
+++ head/include/stdbool.h  Sun Dec 25 20:15:41 2011(r228878)
@@ -26,9 +26,6 @@
 * $FreeBSD$
 */

-#ifndef _STDBOOL_H_
-#define_STDBOOL_H_
-
#ifndef __bool_true_false_are_defined
#define __bool_true_false_are_defined   1

@@ -44,5 +41,3 @@ typedef   int _Bool;

#endif /* !__cplusplus */
#endif /* __bool_true_false_are_defined */
-
-#endif /* !_STDBOOL_H_ */


I just thought of this while reviewing the change:  should 
__bool_true_false_are_defined be set only if __cplusplus is not set?  It 
should be set for C99, but I wonder if it should be set for C++.


Also, is there a style requirement that the guard for a header file be 
based off of the name of the file?  I did not see anything obvious for 
this within style(9), but I am curious.


Sean
--
s...@freebsd.org
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"