<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type><BASE
href="x-msg://737/">
<META name=GENERATOR content="MSHTML 9.00.8112.16464"></HEAD>
<BODY
style="WORD-WRAP: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space">
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial>Hi Ross & Jeff,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial>first of all in Boost 1.49 I didn't find a Boolean class. May
be it's in a newer version defined.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial>Second, Ross - the issue here is that someone might need
to have to include both Live555 and other library (boost or libvc) headers
to his _single_ source file. If other library declares it's own Boolean type
(class) then this one will have a name conflict.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial>The exact solution for that problem is namespaces. If you
place all your library names to a separate namespace, then you become
independent from other declarations.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial>To simplify migration for existing code, you might add "using
namespace" statement and then it should be completely transparent for customers.
The person with clashes might need to add specifies like boost:: or
live555:: before Boolean object declaration to resolve
ambiguity.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial>Also, if some of supported compilers doesn't use namespaces
(well, may be some embedded one) - then you might need to use conditional
compilation as you did over 9000 times before ;-)</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=414395214-11032013><FONT color=#0000ff
size=2 face=Arial>Nikolai</FONT></SPAN></DIV><BR>
<DIV dir=ltr lang=en-us class=OutlookMessageHeader align=left>
<HR tabIndex=-1>
<FONT size=2 face=Tahoma><B>From:</B> live-devel-bounces@ns.live555.com
[mailto:live-devel-bounces@ns.live555.com] <B>On Behalf Of </B>Ross
Finlayson<BR><B>Sent:</B> Monday, March 11, 2013 3:22 PM<BR><B>To:</B> LIVE555
Streaming Media - development & use<BR><B>Subject:</B> Re: [Live-devel]
Breaking change<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV>
<BLOCKQUOTE type="cite">
<DIV
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: medium Helvetica; WHITE-SPACE: normal; ORPHANS: 2; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"
lang=EN-US vlink="purple" link="blue">
<DIV style="page: WordSection1" class=WordSection1>
<DIV
style="MARGIN: 0in 0in 0pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt">I
am updating live555 from 2012.2.29 to 2013.03.07 and found a change in
Boolean.hh that breaks my build. From reading the changelog, I think this is
recent.<O:P></O:P></DIV>
<DIV
style="MARGIN: 0in 0in 0pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"><O:P></O:P></DIV>
<DIV
style="MARGIN: 0in 0in 0pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt">The
line<O:P></O:P></DIV>
<DIV
style="MARGIN: 0in 0in 0pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"> “
#define Boolean bool “</DIV></DIV></DIV></BLOCKQUOTE>
<DIV><BR></DIV>No, it's *not* recent; it's almost 9 months old! From the
changelog:</DIV>
<DIV><BR></DIV>
<DIV>
<DIV>2012.06.12:</DIV>
<DIV>- Updated "UsageEnvironment/include/Boolean.hh" to use the 'bool' type
defined for "MSVC++ 8.0, Visual Studio 2005 and higher",</DIV>
<DIV> if that development environment is being used. Also, fixed a
few places in the code where we were using boolean types</DIV>
<DIV> incorrectly. (Thanks to Nikolai Vorontsov for these
suggestions.)</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<BLOCKQUOTE type="cite">
<DIV
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: medium Helvetica; WHITE-SPACE: normal; ORPHANS: 2; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"
lang=EN-US vlink="purple" link="blue">
<DIV style="page: WordSection1" class=WordSection1>
<DIV
style="MARGIN: 0in 0in 0pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt">Overwrites
a class name in boost (move.cpp) where there is a class with the
name Boolean</DIV></DIV></DIV></BLOCKQUOTE>
<DIV><BR></DIV>Here is the current contents of
"UsageEnvironment/include/Boolean.hh". Feel free to propose a change that
you think works for you (and is not likely to break for everyone else, for which
this existing code works!):<BR>
<DIV><BR></DIV>
<DIV>#if defined(__BORLANDC__) || (defined(_MSC_VER) &&
_MSC_VER >= 1400) // MSVC++ 8.0, Visual Studio 2005 and
higher</DIV>
<DIV>#define Boolean bool</DIV>
<DIV>#define False false</DIV>
<DIV>#define True true</DIV>
<DIV>#else</DIV>
<DIV>typedef unsigned char Boolean;</DIV>
<DIV>#ifndef __MSHTML_LIBRARY_DEFINED__</DIV>
<DIV>#ifndef False</DIV>
<DIV>const Boolean False = 0;</DIV>
<DIV>#endif</DIV>
<DIV>#ifndef True</DIV>
<DIV>const Boolean True = 1;</DIV>
<DIV>#endif</DIV>
<DIV>#endif</DIV>
<DIV>#endif</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<BLOCKQUOTE type="cite">
<DIV
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: medium Helvetica; WHITE-SPACE: normal; ORPHANS: 2; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"
lang=EN-US vlink="purple" link="blue">
<DIV style="page: WordSection1" class=WordSection1>
<DIV
style="MARGIN: 0in 0in 0pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"><O:P></O:P></DIV>
<DIV
style="MARGIN: 0in 0in 0pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"><O:P> </O:P><SPAN
style="FONT-SIZE: 11pt">In the past I have had this collide with
libavcodec.</SPAN></DIV></DIV></DIV></BLOCKQUOTE>
<DIV><BR></DIV>Huh? Why are you compiling "libavcodec" code with our
header files?</DIV>
<DIV><BR></DIV>
<DIV><BR>
<BLOCKQUOTE type="cite">
<DIV
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: medium Helvetica; WHITE-SPACE: normal; ORPHANS: 2; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"
lang=EN-US vlink="purple" link="blue">
<DIV style="page: WordSection1" class=WordSection1>
<DIV
style="MARGIN: 0in 0in 0pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"><SPAN
style="FONT-SIZE: 11pt">So I end up modifying this file every time I
upgrade.</SPAN></DIV></DIV></DIV></BLOCKQUOTE>
<DIV><BR></DIV>If you modifiy the supplied code, you can expect *no* support on
this mailing list!</DIV>
<DIV><BR></DIV>
<DIV><BR>
<BLOCKQUOTE type="cite">
<DIV
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: medium Helvetica; WHITE-SPACE: normal; ORPHANS: 2; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"
lang=EN-US vlink="purple" link="blue">
<DIV style="page: WordSection1" class=WordSection1>
<DIV
style="MARGIN: 0in 0in 0pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"><O:P></O:P></DIV>
<DIV
style="MARGIN: 0in 0in 0pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt">Is
the problem a tough one to fix for live555?</DIV></DIV></DIV></BLOCKQUOTE>
<DIV><BR></DIV>As I noted above, the current "Boolean.hh" has been there for
almost 9 months. Noone else has complained in that time; this (IMHO) calls
into question the legitimacy of your complaint.</DIV><BR>
<DIV apple-content-edited="true"><SPAN
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; ORPHANS: 2; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none"
class=Apple-style-span><SPAN
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; ORPHANS: 2; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none"
class=Apple-style-span>Ross Finlayson<BR>Live Networks, Inc.<BR><A
href="http://www.live555.com/">http://www.live555.com/</A></SPAN></SPAN>
</DIV><BR></BODY></HTML>