[prev in list] [next in list] [prev in thread] [next in thread] 

List:       boost
Subject:    [boost]  [scope_exit] Boost.ScopeExit capturing 'this'
From:       adam.butcher () selex-comms ! com
Date:       2009-02-27 11:40:46
Message-ID: OF147B2619.FFE69B42-ON8025756A.002F8EDF-8025756A.00402A7E () Selex-Comms ! com
[Download RAW message or body]

--=_mixed 00402A7C8025756A_Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

I wasn't sure whether I had the correct address for Boost.ScopeExit's
author Alexander Nasonov, so I've submitted to this list just in case and
to get feedback from other users.

I have been playing with BOOST_SCOPE_EXIT -- it it very convenient.
One thing I would have liked would be to capture 'this' inside member
functions.  I have created a patch which adds BOOST_SCOPE_EXIT_THIS to
do just that.  It provides an operator->() in the generated struct
which can be used to access the enclosing class's members.

The syntax is:

    BOOST_SCOPE_EXIT_THIS( (&a) (&b) )
    {
        a; b;               // local captures
        (*this)->member;    // member access
    }
    BOOST_SCOPE_EXIT_END;

and can be

    BOOST_SCOPE_EXIT_THIS()
    {
        (*this)->member;
    }
    BOOST_SCOPE_EXIT_END;

providing the preprocessor allows for empty parameter lists (which gcc
does and vc does albeit after disabling a warning to remove noise).

The type pointed to by the result of operator->() is correctly cv
qualified.

It has been tested on gcc 4.3, gcc 4.2, msvc 7.1 and msvc 9.0.  I don't
have access to other compilers.

Boost.Typeof worked fine on gcc for typeof(this) -- mostly because gcc
has a native typeof I guess.

On visual studio (vc71 and vc90) it was not so good -- a compiler bug
  (
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=331418
 ,

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=365549
 )
that has been marked as 'Won't fix' means that 'this' cannot be used
in expressions within template argument lists -- even if those
expressions are innocuous typeid()s or sizeof()s for type-inference.

The common workaround (capturing a compile-time integer with an
enumerator and using the enumerator in the template parameter list)
doesn't work with the vc71-specific implementation of Boost.Typeof
since it is based on typeid() -- this cannot be captured in a
compile-time expression (or I know of no way to that doesn't involve
the expression existing in a template argument list).

All is not lost though -- the general-purpose sizeof() based approach
for the other VC versions works fine for VC71 for determining the
typeof 'this'.  As such my patch includes a VC>=1300 specific
workaround for typeof 'this' determination.  This is unfortunate but I
couldn't think of any other non-intrusive way of doing it.

Please find the attached patch and let me know what you think -- I'm
sure this feature would be useful to users -- it saves having to do:

    TypeOfMyClassWhichCouldBeTedious* self = this
    BOOST_SCOPE_EXIT( (&self) )
    {
        self->member;
    }
    BOOST_SCOPE_EXIT_END;

which removes the convenience of BOOST_SCOPE_EXIT in these contexts
since something like:

   struct at_end { TypeOfMyClassWhichCouldBeTedious* self; ~at_end()
   {
       self->member;
   }
   } at_end = {this};

can be done without any dependencies to achieve the same result.

Regards,
Adam.




------------------------------------------------------------
This email and any attached files contains company confidential information which may \
be legally privileged. It is intended only for the person(s) or entity to which it is \
addressed and solely for the purposes set forth therein.  If you are not the intended \
recipient or have received this email in error please notify the sender by return, \
delete it from your system and destroy any local copies.  It is strictly forbidden to \
use the information in this email including any attachment or part thereof including \
copying, disclosing, distributing, amending or using for any other purpose.

In addition the sender excludes all liabilities (whether tortious or common law) for \
damage or breach arising or related to this email including but not limited to \
viruses and libel. SELEX Communications Limited is a Private Limited Company \
registered in England and Wales under Company Number 964533 and whose Registered \
Office is Lambda House, Christopher Martin Rd, Basildon, SS14 3EL. England.

--=_mixed 00402A7C8025756A_Content-Type: application/octet-stream;
	name="boost_1_38_0-scope-exit-this-capture.diff"
Content-Disposition: attachment;
	filename="boost_1_38_0-scope-exit-this-capture.diff"
Content-Transfer-Encoding: base64

LS0tIGJvb3N0XzFfMzhfMC9ib29zdC9zY29wZV9leGl0LmhwcAlXZWQgSmFuIDIxIDIwOjMzOjE3
IDIwMDkKKysrIGJvb3N0XzFfMzhfMC9ib29zdC9zY29wZV9leGl0LmhwcAlGcmkgRmViIDI3IDAy
OjAwOjQ3IDIwMDkKQEAgLTE0MCwxNSArMTQwLDEwMSBAQAogICAgIHR5cGVkZWYgdm9pZCAoKkJP
T1NUX1NDT1BFX0VYSVRfQVVYX1RBRyhpZCxpKSkoaW50IHZhcik7CiAKIAorI2lmIEJPT1NUX1dP
UktBUk9VTkQoQk9PU1RfTVNWQyw+PTEzMDApCisgICAgLy8gQm9vc3QuVHlwZW9mIGZvciBWQzcx
J3MgdHlwZWlkLWJhc2VkIHdvcmthcm91bmQgZG9lcyBub3Qgd29yaworICAgIC8vIHRvIGRldGVy
bWluZSB0aGUgdHlwZSBvZiAndGhpcycgZHVlIHRvIGVycm9yIEMyMzU1IGJlaW5nCisgICAgLy8g
aW5jb3JyZWN0bHkgcmVwb3J0ZWQgKGEgY29tcGlsZXIgYnVnIHRoYXQncyBwcmVzZW50IGluIDgg
YW5kIDkKKyAgICAvLyBhbHNvKS4gIFRoZSB0eXBpY2FsIGF2b2lkYW5jZSBzdHJhdGVneSB0byBl
dmFkZSB0aGlzIGVycm9yIGlzCisgICAgLy8gdG8gbWFrZSBhbiBpbmRpcmVjdCBjb21waWxlLXRp
bWUgY29uc3RhbnQgYnkgYXNzaWdubWVudCB0aHJvdWdoCisgICAgLy8gZW51bSwgdGhlbiB1c2Ug
dGhhdCBhcyBhIHR5cGUtaW5kZXguICBUaGlzIGNhbm5vdCBoYXBwZW4gd2l0aAorICAgIC8vIHRo
ZSB0eXBlaWQoKSBhcHByb2FjaCwgb25seSB3aXRoIGEgc2l6ZW9mKCkgYXBwcm9hY2guCisgICAg
Ly8gCisgICAgLy8gVGhlIGltcGxlbWVudGF0aW9uIGJlbG93IGlzIHRoZSBtb3JlIGdlbmVyYWws
IHR5cGUtaW5kZXgKKyAgICAvLyBzaXplb2YoKS1iYXNlZCBhcHByb2FjaCBpbXBsZW1lbnRlZCBp
biBCb29zdC5UeXBlb2Ygd2hpY2gKKyAgICAvLyBhcHBlYXJzIHRvIHdvcmsgZmluZSBmb3IgdHlw
ZW9mKHRoaXMpIHByb3ZpZGVkIHRoZSByZWZlcmVuY2UgdG8KKyAgICAvLyAndGhpcycgaXMgbm90
IHByZXNlbnQgaW4gdGhlIHRlbXBsYXRlIGFyZ3VtZW50IGxpc3QgKGkuZS4gdGhlCisgICAgLy8g
dHlwZS1pbmRleCBpcyBjYXB0dXJlZCBpbnRvIGEgbG9jYWwgZW51bWVyYXRvciBiZWZvcmUgYmVp
bmcKKyAgICAvLyB1c2VkIGFzIGEgdGVtcGxhdGUgYXJndW1lbnQpLgorICAgIC8vCisgICAgLy8g
SW5saW5lIGRvY3VtZW50YXRpb24gaXMgcmVtb3ZlZCBhbmQgY29uZGl0aW9uYWwgY29tcGlsYXRp
b24KKyAgICAvLyBhcHBsaWVkLgorICAgIC8vCisgICAgbmFtZXNwYWNlIGJvb3N0IHsgbmFtZXNw
YWNlIHNjb3BlX2V4aXQgeyBuYW1lc3BhY2UgbXN2Y190eXBlb2ZfdGhpcworICAgIHsKKyAgICAg
ICAgdGVtcGxhdGU8aW50IElEPgorICAgICAgICBzdHJ1Y3QgbXN2Y190eXBlaWRfd3JhcHBlciB7
CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGJvb3N0Ojp0eXBlX29mOjptc3ZjX2V4dHJh
Y3RfdHlwZTxtcGw6OmludF88SUQ+ID46OmlkMnR5cGUgaWQydHlwZTsKKyAgICAgICAgICAgIHR5
cGVkZWYgdHlwZW5hbWUgaWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICB9OworICAgICAgICB0
ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCBtc3ZjX3R5cGVpZF93cmFwcGVyPDQ+IHsKKyAgICAg
ICAgICAgIHR5cGVkZWYgbXN2Y190eXBlaWRfd3JhcHBlcjw0PiB0eXBlOworICAgICAgICB9Owor
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBzdHJ1Y3QgZW5jb2RlX3R5cGUK
KyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHZh
bHVlPUJPT1NUX1RZUEVPRl9JTkRFWChUKSk7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1l
IGJvb3N0Ojp0eXBlX29mOjptc3ZjX3JlZ2lzdGVyX3R5cGU8VCxtcGw6OmludF88dmFsdWU+ID46
OmlkMnR5cGUgdHlwZTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25l
ZCxuZXh0PXZhbHVlKzEpOworICAgICAgICAgICAgQk9PU1RfVFlQRU9GX05FWFRfSU5ERVgobmV4
dCk7CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgICAgIHN0cnVj
dCBzaXplcgorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIGNoYXIoKnR5cGUpW2VuY29k
ZV90eXBlPFQ+Ojp2YWx1ZV07CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHR5cGVuYW1lIGRpc2FibGVfaWY8CisgICAgICAgICAgICB0eXBlbmFtZSBpc19mdW5jdGlv
bjxUPjo6dHlwZSwKKyAgICAgICAgICAgIHR5cGVuYW1lIHNpemVyPFQ+Ojp0eXBlPjo6dHlwZSBl
bmNvZGVfc3RhcnQoVCBjb25zdCYpOworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0eXBl
bmFtZSBlbmFibGVfaWY8CisgICAgICAgICAgICB0eXBlbmFtZSBpc19mdW5jdGlvbjxUPjo6dHlw
ZSwKKyAgICAgICAgICAgIHR5cGVuYW1lIHNpemVyPFQ+Ojp0eXBlPjo6dHlwZSBlbmNvZGVfc3Rh
cnQoVCYpOworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcmdhbml6ZXIsIHR5cGVuYW1lIFQ+
CisgICAgICAgIGJvb3N0Ojp0eXBlX29mOjptc3ZjX3JlZ2lzdGVyX3R5cGU8VCxPcmdhbml6ZXI+
IHR5cGVvZl9yZWdpc3Rlcl90eXBlKGNvbnN0IFQmLE9yZ2FuaXplciogPTApOworCisgICAgfX19
CisKKyMgZGVmaW5lIEJPT1NUX1NDT1BFX0VYSVRfVFlQRURFRl9UWVBFT0ZfVEhJUygpIFwKKyAg
ICBlbnVtIHsgQk9PU1RfUFBfQ0FUKGJvb3N0X3NlX3RoaXN0eXBlX2luZGV4XyxfX0xJTkVfXykg
PSBzaXplb2YoKmJvb3N0OjpzY29wZV9leGl0Ojptc3ZjX3R5cGVvZl90aGlzOjplbmNvZGVfc3Rh
cnQodGhpcykpIH07IFwKKyAgICB0eXBlZGVmIGJvb3N0OjpzY29wZV9leGl0Ojptc3ZjX3R5cGVv
Zl90aGlzOjptc3ZjX3R5cGVpZF93cmFwcGVyPEJPT1NUX1BQX0NBVChib29zdF9zZV90aGlzdHlw
ZV9pbmRleF8sX19MSU5FX18pPjo6dHlwZQorCisjZWxzZSAvLyBvdGhlciBCb29zdC5UeXBlb2Yg
J3RoaXMnIGFwcGVhciB0byBiZSBva2F5CisjIGRlZmluZSBCT09TVF9TQ09QRV9FWElUX1RZUEVE
RUZfVFlQRU9GX1RISVMoKSB0eXBlZGVmIEJPT1NUX1RZUEVPRih0aGlzKQorI2VuZGlmCisKKwor
Ly8gInRoaXMgY2FwdHVyZSIgZnVuY3Rpb24tbWFjcm9zIGZvciB3aGVuICgqdGhpcykgaXMgcmVx
dWVzdGVkCisvLworI2RlZmluZSBCT09TVF9TQ09QRV9FWElUX1JFQUxUSElTX0NPTU1BX0lGX3Ro
aXMoc2VxKSAgICAgICAgIHRoaXMgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfU0VRX1NJWkUo
c2VxKSkKKyNkZWZpbmUgQk9PU1RfU0NPUEVfRVhJVF9USElTUEFSQU1fQ09NTUFfSUZfdGhpcyhp
ZCxzZXEpICAgICBCT09TVF9QUF9DQVQoc2VfdGhpc190eXBlLGlkKSBzZV90aGlzIEJPT1NUX1BQ
X0NPTU1BX0lGKEJPT1NUX1BQX1NFUV9TSVpFKHNlcSkpCisjZGVmaW5lIEJPT1NUX1NDT1BFX0VY
SVRfVEhJU0lOSVRfQ09NTUFfSUZfdGhpcyhzZXEpICAgICAgICAgc2VfdGhpcyhzZV90aGlzKSBC
T09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9TRVFfU0laRShzZXEpKQorCisjZGVmaW5lIEJPT1NU
X1NDT1BFX0VYSVRfVFlQRURFRl9USElTVFlQRV90aGlzKGlkKSAgICAgICAgICAgQk9PU1RfU0NP
UEVfRVhJVF9UWVBFREVGX1RZUEVPRl9USElTKCkgQk9PU1RfUFBfQ0FUKHNlX3RoaXNfdHlwZSxp
ZCk7CisjZGVmaW5lIEJPT1NUX1NDT1BFX0VYSVRfREVGSU5FX1RISVNNRU1CRVJfdGhpcyhpZCkg
ICAgICAgICAgQk9PU1RfUFBfQ0FUKHNlX3RoaXNfdHlwZSxpZCkgc2VfdGhpczsKKyNkZWZpbmUg
Qk9PU1RfU0NPUEVfRVhJVF9ERUZJTkVfVEhJU19BQ0NFU1NPUl90aGlzKGlkKSBcCisgICAgICAg
IGlubGluZSBCT09TVF9QUF9DQVQoc2VfdGhpc190eXBlLGlkKSBvcGVyYXRvci0+KCkgeyByZXR1
cm4gYm9vc3Rfc2VfcGFyYW1zXy0+c2VfdGhpczsgfQorCisvLyAidGhpcyBjYXB0dXJlIiBmdW5j
dGlvbi1tYWNyb3MgZm9yIHdoZW4gKCp0aGlzKSBpcyBub3QgcmVxdWVzdGVkCisvLworI2RlZmlu
ZSBCT09TVF9TQ09QRV9FWElUX1JFQUxUSElTX0NPTU1BX0lGX25vdGhpcyhzZXEpCisjZGVmaW5l
IEJPT1NUX1NDT1BFX0VYSVRfVEhJU1BBUkFNX0NPTU1BX0lGX25vdGhpcyhpZCxzZXEpCisjZGVm
aW5lIEJPT1NUX1NDT1BFX0VYSVRfVEhJU0lOSVRfQ09NTUFfSUZfbm90aGlzKHNlcSkKKworI2Rl
ZmluZSBCT09TVF9TQ09QRV9FWElUX1RZUEVERUZfVEhJU1RZUEVfbm90aGlzKGlkKQorI2RlZmlu
ZSBCT09TVF9TQ09QRV9FWElUX0RFRklORV9USElTTUVNQkVSX25vdGhpcyhpZCkKKyNkZWZpbmUg
Qk9PU1RfU0NPUEVfRVhJVF9ERUZJTkVfVEhJU19BQ0NFU1NPUl9ub3RoaXMoaWQpCisKKwogI2lm
ZGVmIEJPT1NUX1NDT1BFX0VYSVRfQVVYX1RQTF9XT1JLQVJPVU5ECiAKLSNkZWZpbmUgQk9PU1Rf
U0NPUEVfRVhJVF9BVVhfUEFSQU1TX1RfQ1RPUihpZCwgc2VxKQorI2RlZmluZSBCT09TVF9TQ09Q
RV9FWElUX0FVWF9QQVJBTVNfVF9DVE9SKGlkLCBzZXEsIHRoaXMpCiAKICNkZWZpbmUgQk9PU1Rf
U0NPUEVfRVhJVF9BVVhfUEFSQU1fSU5JVChyLCBpZCwgaSwgdmFyKSBcCiAgICAgQk9PU1RfUFBf
Q09NTUFfSUYoaSkgeyBCT09TVF9TQ09QRV9FWElUX0FVWF9ERVJFRihpZCxpLHZhcikgfQogCi0j
ZGVmaW5lIEJPT1NUX1NDT1BFX0VYSVRfQVVYX1BBUkFNU19JTklUKGlkLCBzZXEpIFwKLSAgICA9
IHsgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0koQk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFSQU1fSU5J
VCwgaWQsIHNlcSkgfTsKKyNkZWZpbmUgQk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFSQU1TX0lOSVQo
aWQsIHNlcSwgdGhpcykgXAorICAgID0geyBCT09TVF9QUF9DQVQoQk9PU1RfU0NPUEVfRVhJVF9S
RUFMVEhJU19DT01NQV9JRl8sdGhpcykoc2VxKSBcCisgICAgICAgIEJPT1NUX1BQX1NFUV9GT1Jf
RUFDSF9JKEJPT1NUX1NDT1BFX0VYSVRfQVVYX1BBUkFNX0lOSVQsIGlkLCBzZXEpIH07CiAKICNl
bHNlCiAKQEAgLTE1OCwxNiArMjQ0LDE4IEBACiAjZGVmaW5lIEJPT1NUX1NDT1BFX0VYSVRfQVVY
X01FTUJFUl9JTklUKHIsIGlkLCBpLCB2YXIpIEJPT1NUX1BQX0NPTU1BX0lGKGkpIFwKICAgICBC
T09TVF9TQ09QRV9FWElUX0FVWF9QQVJBTShpZCxpLHZhcikgKCBCT09TVF9QUF9DQVQoYSxpKSAp
CiAKLSNkZWZpbmUgQk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFSQU1TX1RfQ1RPUihpZCwgc2VxKSAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgQk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFS
QU1TX1RfQ1RPUihpZCwgc2VxLCB0aGlzKSAgICAgICAgICAgICAgICAgIFwKICAgICBCT09TVF9T
Q09QRV9FWElUX0FVWF9QQVJBTVNfVChpZCkoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgQk9PU1RfUFBfQ0FUKEJPT1NUX1NDT1BFX0VYSVRfVEhJU1BBUkFN
X0NPTU1BX0lGXyx0aGlzKShpZCxzZXEpICAgIFwKICAgICAgICAgQk9PU1RfUFBfU0VRX0ZPUl9F
QUNIX0koQk9PU1RfU0NPUEVfRVhJVF9BVVhfQ1RPUl9BUkcsIGlkLCBzZXEgKSApIFwKLSAgICA6
IEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JKEJPT1NUX1NDT1BFX0VYSVRfQVVYX01FTUJFUl9JTklU
LCBpZCwgc2VxKSB7fQorICAgIDogQk9PU1RfUFBfQ0FUKEJPT1NUX1NDT1BFX0VYSVRfVEhJU0lO
SVRfQ09NTUFfSUZfLHRoaXMpKHNlcSkgICAgICAgICAgXAorICAgICAgQk9PU1RfUFBfU0VRX0ZP
Ul9FQUNIX0koQk9PU1RfU0NPUEVfRVhJVF9BVVhfTUVNQkVSX0lOSVQsIGlkLCBzZXEpIHt9CiAK
ICNkZWZpbmUgQk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFSQU1fSU5JVChyLCBpZCwgaSwgdmFyKSBc
CiAgICAgQk9PU1RfUFBfQ09NTUFfSUYoaSkgQk9PU1RfU0NPUEVfRVhJVF9BVVhfREVSRUYoaWQs
aSx2YXIpCiAKLSNkZWZpbmUgQk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFSQU1TX0lOSVQoaWQsIHNl
cSkgXAotICAgICggQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0koQk9PU1RfU0NPUEVfRVhJVF9BVVhf
UEFSQU1fSU5JVCwgaWQsIHNlcSkgKTsKKyNkZWZpbmUgQk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFS
QU1TX0lOSVQoaWQsIHNlcSwgdGhpcykgXAorICAgICggQk9PU1RfUFBfQ0FUKEJPT1NUX1NDT1BF
X0VYSVRfUkVBTFRISVNfQ09NTUFfSUZfLHRoaXMpKHNlcSkgQk9PU1RfUFBfU0VRX0ZPUl9FQUNI
X0koQk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFSQU1fSU5JVCwgaWQsIHNlcSkgKTsKIAogI2VuZGlm
CiAKQEAgLTIwNiwxNCArMjk0LDE2IEBACiAgICAgICAgIEJPT1NUX1NDT1BFX0VYSVRfQVVYX1BB
UkFNX1QoQk9PU1RfUFBfVFVQTEVfRUxFTSgyLDAsaWR0eSksIGksIHZhcik7CiAKIAotI2RlZmlu
ZSBCT09TVF9TQ09QRV9FWElUX0FVWF9JTVBMKGlkLCBzZXEsIHR5KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgQk9PU1RfU0NPUEVfRVhJVF9BVVhfSU1QTChpZCwg
c2VxLCB0eSwgdGhpcykgXAogICAgIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JKEJPT1NUX1NDT1BF
X0VYSVRfQVVYX1RBR19ERUNMLCBpZCwgc2VxKSAgICAgICAgICAgIFwKLSAgICBCT09TVF9QUF9T
RVFfRk9SX0VBQ0hfSShCT09TVF9TQ09QRV9FWElUX0FVWF9DQVBUVVJFX0RFQ0wsIChpZCx0eSks
IHNlcSkgIFwKLSAgICBzdHJ1Y3QgQk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFSQU1TX1QoaWQpIHsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIEJPT1NUX1BQX1NFUV9G
T1JfRUFDSF9JKEJPT1NUX1NDT1BFX0VYSVRfQVVYX1BBUkFNX0RFQ0wsIChpZCx0eSksIHNlcSlc
CisgICAgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0koQk9PU1RfU0NPUEVfRVhJVF9BVVhfQ0FQVFVS
RV9ERUNMLCAoaWQsdHkpLCBzZXEpICAgXAorICAgIEJPT1NUX1BQX0NBVChCT09TVF9TQ09QRV9F
WElUX1RZUEVERUZfVEhJU1RZUEVfLHRoaXMpKGlkKSAgICAgICAgICAgICAgICAgIFwKKyAgICBz
dHJ1Y3QgQk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFSQU1TX1QoaWQpIHsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1BQX0NBVChCT09TVF9TQ09QRV9FWElU
X0RFRklORV9USElTTUVNQkVSXyx0aGlzKShpZCkgICAgICAgICAgICAgXAorICAgICAgICBCT09T
VF9QUF9TRVFfRk9SX0VBQ0hfSShCT09TVF9TQ09QRV9FWElUX0FVWF9QQVJBTV9ERUNMLCAoaWQs
dHkpLCBzZXEpIFwKICAgICAgICAgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0koQk9PU1RfU0NPUEVf
RVhJVF9BVVhfTUVNQkVSLCBpZCwgc2VxKSAgICAgICAgICBcCi0gICAgICAgIEJPT1NUX1NDT1BF
X0VYSVRfQVVYX1BBUkFNU19UX0NUT1IoaWQsIHNlcSkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIH0gQk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFSQU1TKGlkKSBCT09TVF9TQ09QRV9F
WElUX0FVWF9QQVJBTVNfSU5JVChpZCwgc2VxKVwKKyAgICAgICAgQk9PU1RfU0NPUEVfRVhJVF9B
VVhfUEFSQU1TX1RfQ1RPUihpZCwgc2VxLCB0aGlzKSAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgfSBCT09TVF9TQ09QRV9FWElUX0FVWF9QQVJBTVMoaWQpIEJPT1NUX1NDT1BFX0VYSVRfQVVY
X1BBUkFNU19JTklUKGlkLCBzZXEsIHRoaXMpXAogICAgIGJvb3N0OjpzY29wZV9leGl0OjphdXg6
OmRlY2xhcmU8c2l6ZW9mKGJvb3N0X3Njb3BlX2V4aXRfYXJncyk+ICAgICAgICAgICAgIFwKICAg
ICAgICAgOjphcHBseTwwPiBib29zdF9zY29wZV9leGl0X2FyZ3M7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCiAgICAgYm9vc3Rfc2NvcGVfZXhpdF9hcmdzLnZhbHVlID0g
JkJPT1NUX1NDT1BFX0VYSVRfQVVYX1BBUkFNUyhpZCk7ICAgICAgICAgICAgXApAQCAtMjIzLDE4
ICszMTMsMjYgQEAKICAgICAgICAgICAgIDogYm9vc3Rfc2VfcGFyYW1zXyggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAo
Qk9PU1RfU0NPUEVfRVhJVF9BVVhfUEFSQU1TX1QoaWQpKilib29zdF9zZV9wYXJhbXMpICAgICAg
ICAgXAogICAgICAgICB7fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfUFBfQ0FUKEJPT1NU
X1NDT1BFX0VYSVRfREVGSU5FX1RISVNfQUNDRVNTT1JfLHRoaXMpKGlkKSAgICAgICAgICBcCiAg
ICAgICAgIH5CT09TVF9TQ09QRV9FWElUX0FVWF9HVUFSRF9UKGlkKSgpIHsgYm9vc3Rfc2VfYm9k
eSggICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgQk9PU1RfUFBfU0VRX0ZPUl9FQUNI
X0koQk9PU1RfU0NPUEVfRVhJVF9BVVhfQVJHLCBpZCwgc2VxKSApOyB9ICAgIFwKLSAgICAgICAg
c3RhdGljIHZvaWQgYm9vc3Rfc2VfYm9keShCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSSggICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgIHZvaWQgYm9vc3Rfc2VfYm9keShCT09TVF9QUF9TRVFf
Rk9SX0VBQ0hfSSggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgQk9P
U1RfU0NPUEVfRVhJVF9BVVhfQVJHX0RFQ0wsIChpZCx0eSksIHNlcSkgKQogCiAjaWYgZGVmaW5l
ZChCT09TVF9NU1ZDKQogCisjaWZuZGVmIEJPT1NUX1NDT1BFX0VYSVRfRE9OVF9ESVNBQkxFX0M0
MDAzCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MDAzKQorI2VuZGlmCisKICNkZWZpbmUgQk9P
U1RfU0NPUEVfRVhJVF9FTkQgfSBCT09TVF9TQ09QRV9FWElUX0FVWF9HVUFSRChfX0NPVU5URVJf
XykgKCBcCiAgICAgYm9vc3Rfc2NvcGVfZXhpdF9hcmdzLnZhbHVlKTsKIAogI2RlZmluZSBCT09T
VF9TQ09QRV9FWElUKHNlcSkgXAotICAgIEJPT1NUX1NDT1BFX0VYSVRfQVVYX0lNUEwoX19DT1VO
VEVSX18sIHNlcSwgQk9PU1RfUFBfRU1QVFkoKSkKKyAgICBCT09TVF9TQ09QRV9FWElUX0FVWF9J
TVBMKF9fQ09VTlRFUl9fLCBzZXEsIEJPT1NUX1BQX0VNUFRZKCksIG5vdGhpcykKKworI2RlZmlu
ZSBCT09TVF9TQ09QRV9FWElUX1RISVMoc2VxKSBcCisgICAgQk9PU1RfU0NPUEVfRVhJVF9BVVhf
SU1QTChfX0NPVU5URVJfXywgc2VxLCBCT09TVF9QUF9FTVBUWSgpLCB0aGlzKQogCiAjZWxzZQog
CkBAIC0yNDIsMTUgKzM0MCwyMSBAQAogICAgIGJvb3N0X3Njb3BlX2V4aXRfYXJncy52YWx1ZSk7
CiAKICNkZWZpbmUgQk9PU1RfU0NPUEVfRVhJVChzZXEpIFwKLSAgICBCT09TVF9TQ09QRV9FWElU
X0FVWF9JTVBMKF9fTElORV9fLCBzZXEsIEJPT1NUX1BQX0VNUFRZKCkpCisgICAgQk9PU1RfU0NP
UEVfRVhJVF9BVVhfSU1QTChfX0xJTkVfXywgc2VxLCBCT09TVF9QUF9FTVBUWSgpLCBub3RoaXMp
CisKKyNkZWZpbmUgQk9PU1RfU0NPUEVfRVhJVF9USElTKHNlcSkgXAorICAgIEJPT1NUX1NDT1BF
X0VYSVRfQVVYX0lNUEwoX19MSU5FX18sIHNlcSwgQk9PU1RfUFBfRU1QVFkoKSwgdGhpcykKIAog
I2VuZGlmCiAKICNpZmRlZiBCT09TVF9TQ09QRV9FWElUX0FVWF9UUExfV09SS0FST1VORAogI2Rl
ZmluZSBCT09TVF9TQ09QRV9FWElUX1RQTChzZXEpIFwKLSAgICBCT09TVF9TQ09QRV9FWElUX0FV
WF9JTVBMKF9fTElORV9fLCBzZXEsIHR5cGVuYW1lKQorICAgIEJPT1NUX1NDT1BFX0VYSVRfQVVY
X0lNUEwoX19MSU5FX18sIHNlcSwgdHlwZW5hbWUsIG5vdGhpcykKKyNkZWZpbmUgQk9PU1RfU0NP
UEVfRVhJVF9USElTX1RQTChzZXEpIFwKKyAgICBCT09TVF9TQ09QRV9FWElUX0FVWF9JTVBMKF9f
TElORV9fLCBzZXEsIHR5cGVuYW1lLCB0aGlzKQogI2Vsc2UKLSNkZWZpbmUgQk9PU1RfU0NPUEVf
RVhJVF9UUEwoc2VxKSBCT09TVF9TQ09QRV9FWElUKHNlcSkKKyNkZWZpbmUgQk9PU1RfU0NPUEVf
RVhJVF9UUEwoc2VxKSAgICAgIEJPT1NUX1NDT1BFX0VYSVQoc2VxKQorI2RlZmluZSBCT09TVF9T
Q09QRV9FWElUX1RISVNfVFBMKHNlcSkgQk9PU1RfU0NPUEVfRVhJVF9USElTKHNlcSkKICNlbmRp
ZgogCiAjZW5kaWYgLy8gI2lmbmRlZiBGSUxFX2Jvb3N0X3Njb3BlX2V4aXRfaHBwX0lOQ0xVREVE
Ci0tLSBib29zdF8xXzM4XzAvYm9vc3QvdHlwZW9mL21zdmMvdHlwZW9mX2ltcGwuaHBwCUZyaSBG
ZWIgMjcgMDg6MDY6MDkgMjAwOQorKysgYm9vc3RfMV8zOF8wL2Jvb3N0L3R5cGVvZi9tc3ZjL3R5
cGVvZl9pbXBsLmhwcAlGcmkgRmViIDI3IDA4OjA2OjUxIDIwMDkKQEAgLTcwLDcgKzcwLDcgQEAK
ICAgICAgICAgICAgIH0KICAgICAgICAgfTsKIAotIyBkZWZpbmUgQk9PU1RfVFlQRU9GX0lOREVY
KFQpIChlbmNvZGVfY291bnRlcjxUPjo6Y291bnQpCisjIGRlZmluZSBCT09TVF9UWVBFT0ZfSU5E
RVgoVCkgKGJvb3N0Ojp0eXBlX29mOjplbmNvZGVfY291bnRlcjxUPjo6Y291bnQpCiAjIGRlZmlu
ZSBCT09TVF9UWVBFT0ZfTkVYVF9JTkRFWChuZXh0KQogIyBlbHNlCiAgICAgICAgIHRlbXBsYXRl
PGludCBOPiBzdHJ1Y3QgZW5jb2RlX2NvdW50ZXIgOiBlbmNvZGVfY291bnRlcjxOIC0gMT4ge307
CkBAIC04MCw3ICs4MCw3IEBACiAgICAgICAgIGNoYXIgKCplbmNvZGVfaW5kZXgoLi4uKSlbNV07
CiAKICMgZGVmaW5lIEJPT1NUX1RZUEVPRl9JTkRFWChUKSAoc2l6ZW9mKCpib29zdDo6dHlwZV9v
Zjo6ZW5jb2RlX2luZGV4KChib29zdDo6dHlwZV9vZjo6ZW5jb2RlX2NvdW50ZXI8MTAwNT4qKTAp
KSkKLSMgZGVmaW5lIEJPT1NUX1RZUEVPRl9ORVhUX0lOREVYKG5leHQpIGZyaWVuZCBjaGFyICgq
ZW5jb2RlX2luZGV4KGVuY29kZV9jb3VudGVyPG5leHQ+KikpW25leHRdOworIyBkZWZpbmUgQk9P
U1RfVFlQRU9GX05FWFRfSU5ERVgobmV4dCkgZnJpZW5kIGNoYXIgKCpib29zdDo6dHlwZV9vZjo6
ZW5jb2RlX2luZGV4KGVuY29kZV9jb3VudGVyPG5leHQ+KikpW25leHRdOwogIyBlbmRpZgogCiAg
ICAgICAgIC8vVHlwZW9mIGNvZGUK

--=_mixed 00402A7C8025756A_Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
--=_mixed 00402A7C8025756A_=--


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic