Re: Using lambda or functor as match_condition with boost::asio::read_until()

Pavel Vazharov via Boost-users <[email protected]> Tue, 28 Oct 2025 16:58:47 +0200
Newsgroups gmane.comp.lib.boost.user
Message-ID <CAK9EM18tABOWRkEdGoELOyDAcQX_5V+E0CxmE8rrXg5gzafZsw@mail.gmail.com>
T24gVHVlLCBPY3QgMjgsIDIwMjUgYXQgNDo0MeKAr1BNIExpcMOzZGkgTMOhc3psw7MgdmlhIEJv
b3N0LXVzZXJzDQo8Ym9vc3QtdXNlcnNAbGlzdHMuYm9vc3Qub3JnPiB3cm90ZToNCj4NCj4gSGkh
DQo+DQo+IEFjY29yZGluZyB0byBodHRwczovL3d3dy5ib29zdC5vcmcvZG9jL2xpYnMvbGF0ZXN0
L2RvYy9odG1sL2Jvb3N0X2FzaW8vcmVmZXJlbmNlL3JlYWRfdW50aWwvb3ZlcmxvYWQxNi5odG1s
DQo+DQo+ICJUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaXNfbWF0Y2hfY29uZGl0
aW9uIHR5cGUgdHJhaXQgZXZhbHVhdGVzIHRvIHRydWUgZm9yIGZ1bmN0aW9uIHBvaW50ZXJzIGFu
ZCBmdW5jdGlvbiBvYmplY3RzIHdpdGggYSByZXN1bHRfdHlwZSB0eXBlZGVmLiBJdCBtdXN0IGJl
IHNwZWNpYWxpc2VkIGZvciBvdGhlciB1c2VyLWRlZmluZWQgZnVuY3Rpb24gb2JqZWN0cy4iDQo+
DQo+IE9uIFR1ZXNkYXksIE9jdG9iZXIgMjh0aCwgMjAyNSBhdCAxNTozMSwgS2xlYnNjaCwgTWFy
aW8gdmlhIEJvb3N0LXVzZXJzIDxib29zdC11c2Vyc0BsaXN0cy5ib29zdC5vcmc+IHdyb3RlOg0K
Pg0KPiA+IEhlbGxvLA0KPiA+DQo+ID4gSSB3YW50IHRvIHVzZSBib29zdDo6YXNpbzo6cmVhZF91
bnRpbCgpIGFuZCBwYXNzIGEgZnVuY3RvciBhcyBtYXRjaCBjb25kaXRpb24uIEJ1dCBJIGRvbid0
IGdldCBpdCB0byBjb21waWxlLg0KPiA+DQo+ID4gSGVyZSBpcyBteSBzb3VyY2UgY29kZToNCj4g
Pg0KPiA+ICNpbmNsdWRlIDxib29zdC9hc2lvLmhwcD4NCj4gPg0KPiA+DQo+ID4gdXNpbmcgbmFt
ZXNwYWNlIGJvb3N0Ojphc2lvOw0KPiA+IHVzaW5nIGl0ZXJhdG9yID0gYnVmZmVyc19pdGVyYXRv
cnN0cmVhbWJ1Zjo6Y29uc3RfYnVmZmVyc190eXBlOw0KPiA+DQo+ID4NCj4gPiBzdHJ1Y3QgY29t
cGxldGlvbl9mdW5jdG9yDQo+ID4gew0KPiA+IHN0ZDo6cGFpcjxpdGVyYXRvciwgYm9vbD4gb3Bl
cmF0b3IoKShpdGVyYXRvciBiZWdpbiwgaXRlcmF0b3IgZW5kKSB7DQo+ID4NCj4gPiByZXR1cm4g
e307DQo+ID4gfQ0KPiA+IH07DQo+ID4gY29tcGxldGlvbl9mdW5jdG9yIGZ1bmN0b3I7DQo+ID4g
c3RhdGljX2Fzc2VydChpc19tYXRjaF9jb25kaXRpb248Y29tcGxldGlvbl9mdW5jdG9yPjo6dmFs
dWUsICJjb21wbGV0aW9uX2Z1bmN0b3IgbXVzdCBiZSBtYXRjaCBjb25kaXRpb24iKTsNCj4gPg0K
PiA+IHN0YXRpY19hc3NlcnQoaXNfbWF0Y2hfY29uZGl0aW9uPGRlY2x0eXBlKGZ1bmN0b3IpPjo6
dmFsdWUsICJmdW5jdG9yIG11c3QgYmUgbWF0Y2ggY29uZGl0aW9uIik7DQo+ID4NCj4gPg0KPiA+
IHN0ZDo6cGFpcjxpdGVyYXRvciwgYm9vbD4gY29tcGxldGlvbl9mdW5jKGl0ZXJhdG9yIGJlZ2lu
LCBpdGVyYXRvciBlbmQpIHsNCj4gPg0KPiA+IHJldHVybiBmdW5jdG9yKGJlZ2luLCBlbmQpOw0K
PiA+IH0NCj4gPiBzdGF0aWNfYXNzZXJ0KGlzX21hdGNoX2NvbmRpdGlvbjxkZWNsdHlwZShjb21w
bGV0aW9uX2Z1bmMpPjo6dmFsdWUsICJjb21wbGV0aW9uX2Z1bmMgbXVzdCBiZSBtYXRjaCBjb25k
aXRpb24iKTsNCj4gPg0KPiA+DQo+ID4NCj4gPiBhdXRvIGxhbWJkYSA9IFtdKGl0ZXJhdG9yIGJl
Z2luLCBpdGVyYXRvciBlbmQpIC0+IHN0ZDo6cGFpcjxpdGVyYXRvciwgYm9vbD4gew0KPiA+DQo+
ID4gcmV0dXJuIHt9Ow0KPiA+IH07DQo+ID4gc3RhdGljX2Fzc2VydChpc19tYXRjaF9jb25kaXRp
b248ZGVjbHR5cGUobGFtYmRhKT46OnZhbHVlLCAibGFtYmRhIG11c3QgYmUgbWF0Y2ggY29uZGl0
aW9uIik7DQo+ID4NCj4gPg0KPiA+IHN0ZDo6cGFpcjxpdGVyYXRvciwgYm9vbD4gY29tcGxldGlv
bl9mdW5jMihpdGVyYXRvciBiZWdpbiwgaXRlcmF0b3IgZW5kKSB7DQo+ID4NCj4gPiByZXR1cm4g
bGFtYmRhKGJlZ2luLCBlbmQpOw0KPiA+IH0NCj4gPiBzdGF0aWNfYXNzZXJ0KGlzX21hdGNoX2Nv
bmRpdGlvbjxkZWNsdHlwZShjb21wbGV0aW9uX2Z1bmMyKT46OnZhbHVlLCAiY29tcGxldGlvbl9m
dW5jMiBtdXN0IGJlIG1hdGNoIGNvbmRpdGlvbiIpOw0KPiA+DQo+ID4NCj4gPg0KPiA+IGludCBt
YWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQo+ID4gew0KPiA+IGlvX2NvbnRleHQgY3R4Ow0K
PiA+IGlwOjp0Y3A6OnNvY2tldCBze2N0eH07DQo+ID4gc3RyZWFtYnVmIGJ1ZmZlcjsNCj4gPg0K
PiA+IHJlYWRfdW50aWwocywgYnVmZmVyLCAnXG4nKTsNCj4gPiByZWFkX3VudGlsKHMsIGJ1ZmZl
ciwgY29tcGxldGlvbl9mdW5jKTsNCj4gPiByZWFkX3VudGlsKHMsIGJ1ZmZlciwgY29tcGxldGlv
bl9mdW5jMik7DQo+ID4gLy8gdGhlIGZvbGxvd2luZyBjYWxscyBkbyBub3QgY29tcGlsZQ0KPiA+
IC8vIHJlYWRfdW50aWwocywgYnVmZmVyLCBmdW5jdG9yKTsNCj4gPiAvLyByZWFkX3VudGlsKHMs
IGJ1ZmZlciwgbGFtYmRhKTsNCj4gPiB9DQo+ID4NCj4gPiBJdCBzZWVtcywgdGhhdCBib29zdDo6
YXNpbzo6aXNfbWF0Y2hfY29uZGl0aW9uPD4gZG9lcyBuZWl0aGVyIGFjY2VwdCBteSBsYW1tZGEt
ZnVuY3Rpb24gbm9yIG15IGZ1bmN0b3IuIFRoZSBvbmx5IGNvbXBsZXRpb24gaGFuZGxlciwgdGhh
dCBJIGdldCBhY2NlcHRlZCwgaXMgYSBjbGFzc2ljLCBmcmVlLXN0YW5kaW5nIGZ1bmN0aW9uIChh
bmQgc3RhdGljIGNsYXNzIG1lbWJlciBmdW5jdGlvbnMsIHRvbykuDQo+ID4NCj4gPg0KPiA+IEJ1
dCBpbiB0aGF0IGZ1bmN0aW9uLCBjYWxsaW5nIHRoZSBsYW1iZGEgb3IgdGhlIGZ1bmN0b3IgZG9l
cyBub3Qgc2VlbSB0byBiZSBhIHByb2JsZW0gZm9yIHRoZSBjb21waWxlci4NCj4gPg0KPiA+IFRo
ZSBkb2N1bWVudGF0aW9uIG9mIHJlYWRfdW50aWwgZGVzY3JpYmVzIG1hdGNoX2NvbmRpdGlvbiBh
cyAiVGhlIGZ1bmN0aW9uIG9iamVjdCB0byBiZSBjYWxsZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIg
YSBtYXRjaCBleGlzdHMuIg0KPiA+DQo+ID4gSSB3b3VsZCBleHBlY3QgbGFtYmRhIGZ1bmN0aW9u
cyBhbmQgZnVuY3RvcnMgdG8gYmUgYWNjZXB0ZWQgYXMgYSBmdW5jdGlvbiBvYmplY3QuDQo+ID4N
Cj4gPiBEbyBJIGhhdmUgYW4gZXJyb3IgaW4gdGhlIGRlY2xhcmF0aW9uIG9mIGxhbWJkYSBvciBj
b21wbGV0aW9uX2Z1bmN0b3I6Om9wZXJhdG9yKCk/DQo+ID4NCj4gPiBEb2VzIGFueWJvZHkgbm93
LCBob3cgdG8gZ2V0IHRoaXMgd29ya2luZz8NCj4gPg0KPiA+IEkgdHJpZWQgYm9vc3RfMV83M18w
IGFuZCBib29zdF8xXzg4XzAgd2l0aCBnKysgKEdlbnRvbyAxNC4zLjFfcDIwMjUwODAxIHA0KSAx
NC4zLjEgMjAyNTA4MDEgYW5kIGNsYW5nIHZlcnNpb24gMjAuMS44DQo+ID4NCj4gPiBUaGFua3Mg
aW4gYWR2YW5jZSwNCj4gPg0KPiA+IEtsZWJzY2ggTWFyaW8NCj4gPiBGdW5rdGlvbiB8IFImRA0K
PiA+DQo+ID4NCj4gPg0KPiA+IFRlbDogKzQ5ICgwKSA1MzEgMzggNzAxIDcxOA0KPiA+IFJhdW06
IEJyYXVuc2Nod2VpZywgRTIwDQo+ID4NCj4gPg0KPiA+DQo+ID4gRGllc2UgRS1NYWlsIHVuZCBk
aWUgYW4gc2llIGFuZ2Vow6RuZ3RlbiBEYXRlaWVuIHNpbmQgYXVzc2NobGllw59saWNoIGbDvHIg
UGVyc29uZW4gb2RlciBJbnN0aXR1dGlvbmVuIGJlc3RpbW10LCBkZXJlbiBOYW1lbiBvYmVuIGF1
ZmdlZsO8aHJ0IHNpbmQuIFNpZSBrw7ZubmVuIEluZm9ybWF0aW9uZW4gZW50aGFsdGVuLCBkaWUg
ZHVyY2ggZGFzIEJlcnVmc2dlaGVpbW5pcyBnZXNjaMO8dHp0IHNpbmQgdW5kIGRlcmVuIFdlaXRl
cmdhYmUgc3RyZW5nc3RlbnMgdW50ZXJzYWd0IGlzdC4gSmVkZSBlbGVrdHJvbmlzY2hlIE5hY2hy
aWNodCBrYW5uIGdlw6RuZGVydCB3ZXJkZW4uIEFDVElBIGxlaG50IGplZGUgVmVyYW50d29ydHVu
ZyBmw7xyIGRpZXNlIE5hY2hyaWNodCBhYi4gRGVyIEluaGFsdCBkaWVzZXIgTmFjaHJpY2h0IHN0
ZWxsdCBrZWluZSBWZXJwZmxpY2h0dW5nIHNlaXRlbnMgdW5zZXJlcyBVbnRlcm5laG1lbnMgZGFy
LiBXZW5uIFNpZSBrZWluIEVtcGbDpG5nZXIgc2luZCwgd2Vpc2VuIHdpciBTaWUgZGFyYXVmIGhp
biwgZGFzcyBkYXMgTGVzZW4sIFZlcnZpZWxmw6RsdGlnZW4gb2RlciBWZXJ0ZWlsZW4gc3RyZW5n
c3RlbnMgdW50ZXJzYWd0IGlzdC4gV2lyIGJpdHRlbiBTaWUgZGFoZXIsIHVucyB1bWdlaGVuZCDD
vGJlciBkaWVzZW4gQnJpZWYgenUgaW5mb3JtaWVyZW4gdW5kIGRpZXNlIE5hY2hyaWNodCBzb3dp
ZSBldmVudHVlbGwgYmVpZ2Vmw7xndGUgVW50ZXJsYWdlbiBhdXMgSWhyZW0gUG9zdGZhY2ggenUg
bMO2c2NoZW4uIERhbmtlLg0KPiA+DQo+ID4gVGhpcyBlLW1haWwgYW5kIHRoZSBmaWxlcyBhdHRh
Y2hlZCB0byBpdCBhcmUgaW50ZW5kZWQgZXhjbHVzaXZlbHkgZm9yIHBlcnNvbnMgb3IgaW5zdGl0
dXRpb25zIHdob3NlIG5hbWVzIGFyZSBsaXN0ZWQgYWJvdmUuIFRoZXkgbWF5IGNvbnRhaW4gaW5m
b3JtYXRpb24gdGhhdCBpcyBwcm90ZWN0ZWQgYnkgcHJvZmVzc2lvbmFsIHNlY3JlY3kgYW5kIHRo
ZSBkaXNjbG9zdXJlIG9mIHdoaWNoIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIEFueSBlbGVjdHJv
bmljIG1lc3NhZ2UgY2FuIGJlIG1vZGlmaWVkLiBBQ1RJQSBkZWNsaW5lcyBhbGwgcmVzcG9uc2li
aWxpdHkgZm9yIHRoaXMgbWVzc2FnZS4gVGhlIGNvbnRlbnQgb2YgdGhpcyBtZXNzYWdlIGRvZXMg
bm90IHJlcHJlc2VudCBhIGNvbW1pdG1lbnQgb24gdGhlIHBhcnQgb2Ygb3VyIGNvbXBhbnkuIElm
IHlvdSBhcmUgbm90IGEgcmVjaXBpZW50LCB3ZSB3b3VsZCBsaWtlIHRvIHBvaW50IG91dCB0aGF0
IHJlYWRpbmcsIGNvcHlpbmcgb3IgZGlzdHJpYnV0aW9uIGlzIHN0cmljdGx5IHByb2hpYml0ZWQu
IFdlIHRoZXJlZm9yZSBhc2sgeW91IHRvIGluZm9ybSB1cyBpbW1lZGlhdGVseSBhYm91dCB0aGlz
IGxldHRlciBhbmQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZSBhbmQgYW55IGFjY29tcGFueWluZyBk
b2N1bWVudHMgZnJvbSB5b3VyIG1haWxib3guIFRoYW5rIHlvdS4NCj4gPg0KPiA+DQo+ID4NCj4g
PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+IEJv
b3N0LXVzZXJzIG1haWxpbmcgbGlzdCAtLSBib29zdC11c2Vyc0BsaXN0cy5ib29zdC5vcmcNCj4g
PiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGJvb3N0LXVzZXJzLWxlYXZlQGxpc3Rz
LmJvb3N0Lm9yZw0KPiA+IGh0dHBzOi8vbGlzdHMuYm9vc3Qub3JnL21haWxtYW4zL2xpc3RzL2Jv
b3N0LXVzZXJzLmxpc3RzLmJvb3N0Lm9yZy8NCj4gPiBBcmNoaXZlZCBhdDogaHR0cHM6Ly9saXN0
cy5ib29zdC5vcmcvYXJjaGl2ZXMvbGlzdC9ib29zdC11c2Vyc0BsaXN0cy5ib29zdC5vcmcvbWVz
c2FnZS9FRlMzS0I1Q0Y0T1QyRkhMRUxPNDNHUlpSNFc2UldMWS8NCj4gX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gQm9vc3QtdXNlcnMgbWFpbGluZyBs
aXN0IC0tIGJvb3N0LXVzZXJzQGxpc3RzLmJvb3N0Lm9yZw0KPiBUbyB1bnN1YnNjcmliZSBzZW5k
IGFuIGVtYWlsIHRvIGJvb3N0LXVzZXJzLWxlYXZlQGxpc3RzLmJvb3N0Lm9yZw0KPiBodHRwczov
L2xpc3RzLmJvb3N0Lm9yZy9tYWlsbWFuMy9saXN0cy9ib29zdC11c2Vycy5saXN0cy5ib29zdC5v
cmcvDQo+IEFyY2hpdmVkIGF0OiBodHRwczovL2xpc3RzLmJvb3N0Lm9yZy9hcmNoaXZlcy9saXN0
L2Jvb3N0LXVzZXJzQGxpc3RzLmJvb3N0Lm9yZy9tZXNzYWdlL0YzUlFSRDQ0WlNMSVBVQ09RRVpZ
TzRWWkE2Q1lORVBULw0KDQpIaSB0aGVyZSwNCg0KQWNjb3JkaW5nIHRvIHRoZSBleGFtcGxlIGlu
IHRoZSBkb2NzIGhlcmUgLQ0KaHR0cHM6Ly93d3cuYm9vc3Qub3JnL2RvYy9saWJzL2xhdGVzdC9k
b2MvaHRtbC9ib29zdF9hc2lvL3JlZmVyZW5jZS9yZWFkX3VudGlsL292ZXJsb2FkNy5odG1sDQpZ
b3UgbmVlZCB0byBzcGVjaWFsaXplIHRoZSBjbGFzcyB0ZW1wbGF0ZSAtDQpib29zdDo6YXNpbzo6
aXNfbWF0Y2hfY29uZGl0aW9uIGZvciB5b3VyIGZ1bmN0b3IgdHlwZXMuDQpBZGRpbmcgdGhpcyB0
byB5b3VyIGV4YW1wbGUgY29kZSBtYWtlcyBpdCB3b3JrIC0gaHR0cHM6Ly9nb2Rib2x0Lm9yZy96
LzdzVHN2NWhLSw0KYGBgDQpuYW1lc3BhY2UgYm9vc3Q6OmFzaW8gew0KdGVtcGxhdGUgPD4gc3Ry
dWN0IGlzX21hdGNoX2NvbmRpdGlvbjxjb21wbGV0aW9uX2Z1bmN0b3I+DQo6IHB1YmxpYyBzdGQ6
OnRydWVfdHlwZSB7fTsNCnRlbXBsYXRlIDw+IHN0cnVjdCBpc19tYXRjaF9jb25kaXRpb248ZGVj
bHR5cGUobGFtYmRhKT4NCjogcHVibGljIHN0ZDo6dHJ1ZV90eXBlIHt9Ow0KfQ0KYGBgDQoNClBh
dmVsLg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQm9v
c3QtdXNlcnMgbWFpbGluZyBsaXN0IC0tIGJvb3N0LXVzZXJzQGxpc3RzLmJvb3N0Lm9yZwpUbyB1
bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGJvb3N0LXVzZXJzLWxlYXZlQGxpc3RzLmJvb3N0
Lm9yZwpodHRwczovL2xpc3RzLmJvb3N0Lm9yZy9tYWlsbWFuMy9saXN0cy9ib29zdC11c2Vycy5s
aXN0cy5ib29zdC5vcmcvCkFyY2hpdmVkIGF0OiBodHRwczovL2xpc3RzLmJvb3N0Lm9yZy9hcmNo
aXZlcy9saXN0L2Jvb3N0LXVzZXJzQGxpc3RzLmJvb3N0Lm9yZy9tZXNzYWdlL1lKR1IzNTVJNzI2
NlVKS05RSE5DTVZVVlBSQkJCWENQLyAK