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

Lipódi László via Boost-users <[email protected]> Tue, 28 Oct 2025 14:39:13 +0000
Newsgroups gmane.comp.lib.boost.user
Message-ID <BFDz7I6zY0EuSOkfPPSEuz51tmTIEJ5n8XcxnF_5aroxxLHQJ0yLMikTvf6vOBwGhzZCLGspQCOaL43LbCFzF48BjRawgm5whQmXgJUb-Us=@proton.me>
SGkhDQoNCkFjY29yZGluZyB0byBodHRwczovL3d3dy5ib29zdC5vcmcvZG9jL2xpYnMvbGF0ZXN0
L2RvYy9odG1sL2Jvb3N0X2FzaW8vcmVmZXJlbmNlL3JlYWRfdW50aWwvb3ZlcmxvYWQxNi5odG1s
DQoNCiJUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaXNfbWF0Y2hfY29uZGl0aW9u
IHR5cGUgdHJhaXQgZXZhbHVhdGVzIHRvIHRydWUgZm9yIGZ1bmN0aW9uIHBvaW50ZXJzIGFuZCBm
dW5jdGlvbiBvYmplY3RzIHdpdGggYSByZXN1bHRfdHlwZSB0eXBlZGVmLiBJdCBtdXN0IGJlIHNw
ZWNpYWxpc2VkIGZvciBvdGhlciB1c2VyLWRlZmluZWQgZnVuY3Rpb24gb2JqZWN0cy4iDQoNCk9u
IFR1ZXNkYXksIE9jdG9iZXIgMjh0aCwgMjAyNSBhdCAxNTozMSwgS2xlYnNjaCwgTWFyaW8gdmlh
IEJvb3N0LXVzZXJzIDxib29zdC11c2Vyc0BsaXN0cy5ib29zdC5vcmc+IHdyb3RlOg0KDQo+IEhl
bGxvLA0KPiANCj4gSSB3YW50IHRvIHVzZSBib29zdDo6YXNpbzo6cmVhZF91bnRpbCgpIGFuZCBw
YXNzIGEgZnVuY3RvciBhcyBtYXRjaCBjb25kaXRpb24uIEJ1dCBJIGRvbid0IGdldCBpdCB0byBj
b21waWxlLg0KPiANCj4gSGVyZSBpcyBteSBzb3VyY2UgY29kZToNCj4gDQo+ICNpbmNsdWRlIDxi
b29zdC9hc2lvLmhwcD4NCj4gDQo+IA0KPiB1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmFzaW87DQo+
IHVzaW5nIGl0ZXJhdG9yID0gYnVmZmVyc19pdGVyYXRvcnN0cmVhbWJ1Zjo6Y29uc3RfYnVmZmVy
c190eXBlOw0KPiANCj4gDQo+IHN0cnVjdCBjb21wbGV0aW9uX2Z1bmN0b3INCj4gew0KPiBzdGQ6
OnBhaXI8aXRlcmF0b3IsIGJvb2w+IG9wZXJhdG9yKCkoaXRlcmF0b3IgYmVnaW4sIGl0ZXJhdG9y
IGVuZCkgew0KPiANCj4gcmV0dXJuIHt9Ow0KPiB9DQo+IH07DQo+IGNvbXBsZXRpb25fZnVuY3Rv
ciBmdW5jdG9yOw0KPiBzdGF0aWNfYXNzZXJ0KGlzX21hdGNoX2NvbmRpdGlvbjxjb21wbGV0aW9u
X2Z1bmN0b3I+Ojp2YWx1ZSwgImNvbXBsZXRpb25fZnVuY3RvciBtdXN0IGJlIG1hdGNoIGNvbmRp
dGlvbiIpOw0KPiANCj4gc3RhdGljX2Fzc2VydChpc19tYXRjaF9jb25kaXRpb248ZGVjbHR5cGUo
ZnVuY3Rvcik+Ojp2YWx1ZSwgImZ1bmN0b3IgbXVzdCBiZSBtYXRjaCBjb25kaXRpb24iKTsNCj4g
DQo+IA0KPiBzdGQ6OnBhaXI8aXRlcmF0b3IsIGJvb2w+IGNvbXBsZXRpb25fZnVuYyhpdGVyYXRv
ciBiZWdpbiwgaXRlcmF0b3IgZW5kKSB7DQo+IA0KPiByZXR1cm4gZnVuY3RvcihiZWdpbiwgZW5k
KTsNCj4gfQ0KPiBzdGF0aWNfYXNzZXJ0KGlzX21hdGNoX2NvbmRpdGlvbjxkZWNsdHlwZShjb21w
bGV0aW9uX2Z1bmMpPjo6dmFsdWUsICJjb21wbGV0aW9uX2Z1bmMgbXVzdCBiZSBtYXRjaCBjb25k
aXRpb24iKTsNCj4gDQo+IA0KPiANCj4gYXV0byBsYW1iZGEgPSBbXShpdGVyYXRvciBiZWdpbiwg
aXRlcmF0b3IgZW5kKSAtPiBzdGQ6OnBhaXI8aXRlcmF0b3IsIGJvb2w+IHsNCj4gDQo+IHJldHVy
biB7fTsNCj4gfTsNCj4gc3RhdGljX2Fzc2VydChpc19tYXRjaF9jb25kaXRpb248ZGVjbHR5cGUo
bGFtYmRhKT46OnZhbHVlLCAibGFtYmRhIG11c3QgYmUgbWF0Y2ggY29uZGl0aW9uIik7DQo+IA0K
PiANCj4gc3RkOjpwYWlyPGl0ZXJhdG9yLCBib29sPiBjb21wbGV0aW9uX2Z1bmMyKGl0ZXJhdG9y
IGJlZ2luLCBpdGVyYXRvciBlbmQpIHsNCj4gDQo+IHJldHVybiBsYW1iZGEoYmVnaW4sIGVuZCk7
DQo+IH0NCj4gc3RhdGljX2Fzc2VydChpc19tYXRjaF9jb25kaXRpb248ZGVjbHR5cGUoY29tcGxl
dGlvbl9mdW5jMik+Ojp2YWx1ZSwgImNvbXBsZXRpb25fZnVuYzIgbXVzdCBiZSBtYXRjaCBjb25k
aXRpb24iKTsNCj4gDQo+IA0KPiANCj4gaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkN
Cj4gew0KPiBpb19jb250ZXh0IGN0eDsNCj4gaXA6OnRjcDo6c29ja2V0IHN7Y3R4fTsNCj4gc3Ry
ZWFtYnVmIGJ1ZmZlcjsNCj4gDQo+IHJlYWRfdW50aWwocywgYnVmZmVyLCAnXG4nKTsNCj4gcmVh
ZF91bnRpbChzLCBidWZmZXIsIGNvbXBsZXRpb25fZnVuYyk7DQo+IHJlYWRfdW50aWwocywgYnVm
ZmVyLCBjb21wbGV0aW9uX2Z1bmMyKTsNCj4gLy8gdGhlIGZvbGxvd2luZyBjYWxscyBkbyBub3Qg
Y29tcGlsZQ0KPiAvLyByZWFkX3VudGlsKHMsIGJ1ZmZlciwgZnVuY3Rvcik7DQo+IC8vIHJlYWRf
dW50aWwocywgYnVmZmVyLCBsYW1iZGEpOw0KPiB9DQo+IA0KPiBJdCBzZWVtcywgdGhhdCBib29z
dDo6YXNpbzo6aXNfbWF0Y2hfY29uZGl0aW9uPD4gZG9lcyBuZWl0aGVyIGFjY2VwdCBteSBsYW1t
ZGEtZnVuY3Rpb24gbm9yIG15IGZ1bmN0b3IuIFRoZSBvbmx5IGNvbXBsZXRpb24gaGFuZGxlciwg
dGhhdCBJIGdldCBhY2NlcHRlZCwgaXMgYSBjbGFzc2ljLCBmcmVlLXN0YW5kaW5nIGZ1bmN0aW9u
IChhbmQgc3RhdGljIGNsYXNzIG1lbWJlciBmdW5jdGlvbnMsIHRvbykuDQo+IA0KPiANCj4gQnV0
IGluIHRoYXQgZnVuY3Rpb24sIGNhbGxpbmcgdGhlIGxhbWJkYSBvciB0aGUgZnVuY3RvciBkb2Vz
IG5vdCBzZWVtIHRvIGJlIGEgcHJvYmxlbSBmb3IgdGhlIGNvbXBpbGVyLg0KPiANCj4gVGhlIGRv
Y3VtZW50YXRpb24gb2YgcmVhZF91bnRpbCBkZXNjcmliZXMgbWF0Y2hfY29uZGl0aW9uIGFzICJU
aGUgZnVuY3Rpb24gb2JqZWN0IHRvIGJlIGNhbGxlZCB0byBkZXRlcm1pbmUgd2hldGhlciBhIG1h
dGNoIGV4aXN0cy4iDQo+IA0KPiBJIHdvdWxkIGV4cGVjdCBsYW1iZGEgZnVuY3Rpb25zIGFuZCBm
dW5jdG9ycyB0byBiZSBhY2NlcHRlZCBhcyBhIGZ1bmN0aW9uIG9iamVjdC4NCj4gDQo+IERvIEkg
aGF2ZSBhbiBlcnJvciBpbiB0aGUgZGVjbGFyYXRpb24gb2YgbGFtYmRhIG9yIGNvbXBsZXRpb25f
ZnVuY3Rvcjo6b3BlcmF0b3IoKT8NCj4gDQo+IERvZXMgYW55Ym9keSBub3csIGhvdyB0byBnZXQg
dGhpcyB3b3JraW5nPw0KPiANCj4gSSB0cmllZCBib29zdF8xXzczXzAgYW5kIGJvb3N0XzFfODhf
MCB3aXRoIGcrKyAoR2VudG9vIDE0LjMuMV9wMjAyNTA4MDEgcDQpIDE0LjMuMSAyMDI1MDgwMSBh
bmQgY2xhbmcgdmVyc2lvbiAyMC4xLjgNCj4gDQo+IFRoYW5rcyBpbiBhZHZhbmNlLA0KPiANCj4g
S2xlYnNjaCBNYXJpbw0KPiBGdW5rdGlvbiB8IFImRA0KPiANCj4gDQo+IA0KPiBUZWw6ICs0OSAo
MCkgNTMxIDM4IDcwMSA3MTgNCj4gUmF1bTogQnJhdW5zY2h3ZWlnLCBFMjANCj4gDQo+IA0KPiAN
Cj4gRGllc2UgRS1NYWlsIHVuZCBkaWUgYW4gc2llIGFuZ2Vow6RuZ3RlbiBEYXRlaWVuIHNpbmQg
YXVzc2NobGllw59saWNoIGbDvHIgUGVyc29uZW4gb2RlciBJbnN0aXR1dGlvbmVuIGJlc3RpbW10
LCBkZXJlbiBOYW1lbiBvYmVuIGF1ZmdlZsO8aHJ0IHNpbmQuIFNpZSBrw7ZubmVuIEluZm9ybWF0
aW9uZW4gZW50aGFsdGVuLCBkaWUgZHVyY2ggZGFzIEJlcnVmc2dlaGVpbW5pcyBnZXNjaMO8dHp0
IHNpbmQgdW5kIGRlcmVuIFdlaXRlcmdhYmUgc3RyZW5nc3RlbnMgdW50ZXJzYWd0IGlzdC4gSmVk
ZSBlbGVrdHJvbmlzY2hlIE5hY2hyaWNodCBrYW5uIGdlw6RuZGVydCB3ZXJkZW4uIEFDVElBIGxl
aG50IGplZGUgVmVyYW50d29ydHVuZyBmw7xyIGRpZXNlIE5hY2hyaWNodCBhYi4gRGVyIEluaGFs
dCBkaWVzZXIgTmFjaHJpY2h0IHN0ZWxsdCBrZWluZSBWZXJwZmxpY2h0dW5nIHNlaXRlbnMgdW5z
ZXJlcyBVbnRlcm5laG1lbnMgZGFyLiBXZW5uIFNpZSBrZWluIEVtcGbDpG5nZXIgc2luZCwgd2Vp
c2VuIHdpciBTaWUgZGFyYXVmIGhpbiwgZGFzcyBkYXMgTGVzZW4sIFZlcnZpZWxmw6RsdGlnZW4g
b2RlciBWZXJ0ZWlsZW4gc3RyZW5nc3RlbnMgdW50ZXJzYWd0IGlzdC4gV2lyIGJpdHRlbiBTaWUg
ZGFoZXIsIHVucyB1bWdlaGVuZCDDvGJlciBkaWVzZW4gQnJpZWYgenUgaW5mb3JtaWVyZW4gdW5k
IGRpZXNlIE5hY2hyaWNodCBzb3dpZSBldmVudHVlbGwgYmVpZ2Vmw7xndGUgVW50ZXJsYWdlbiBh
dXMgSWhyZW0gUG9zdGZhY2ggenUgbMO2c2NoZW4uIERhbmtlLg0KPiANCj4gVGhpcyBlLW1haWwg
YW5kIHRoZSBmaWxlcyBhdHRhY2hlZCB0byBpdCBhcmUgaW50ZW5kZWQgZXhjbHVzaXZlbHkgZm9y
IHBlcnNvbnMgb3IgaW5zdGl0dXRpb25zIHdob3NlIG5hbWVzIGFyZSBsaXN0ZWQgYWJvdmUuIFRo
ZXkgbWF5IGNvbnRhaW4gaW5mb3JtYXRpb24gdGhhdCBpcyBwcm90ZWN0ZWQgYnkgcHJvZmVzc2lv
bmFsIHNlY3JlY3kgYW5kIHRoZSBkaXNjbG9zdXJlIG9mIHdoaWNoIGlzIHN0cmljdGx5IHByb2hp
Yml0ZWQuIEFueSBlbGVjdHJvbmljIG1lc3NhZ2UgY2FuIGJlIG1vZGlmaWVkLiBBQ1RJQSBkZWNs
aW5lcyBhbGwgcmVzcG9uc2liaWxpdHkgZm9yIHRoaXMgbWVzc2FnZS4gVGhlIGNvbnRlbnQgb2Yg
dGhpcyBtZXNzYWdlIGRvZXMgbm90IHJlcHJlc2VudCBhIGNvbW1pdG1lbnQgb24gdGhlIHBhcnQg
b2Ygb3VyIGNvbXBhbnkuIElmIHlvdSBhcmUgbm90IGEgcmVjaXBpZW50LCB3ZSB3b3VsZCBsaWtl
IHRvIHBvaW50IG91dCB0aGF0IHJlYWRpbmcsIGNvcHlpbmcgb3IgZGlzdHJpYnV0aW9uIGlzIHN0
cmljdGx5IHByb2hpYml0ZWQuIFdlIHRoZXJlZm9yZSBhc2sgeW91IHRvIGluZm9ybSB1cyBpbW1l
ZGlhdGVseSBhYm91dCB0aGlzIGxldHRlciBhbmQgdG8gZGVsZXRlIHRoaXMgbWVzc2FnZSBhbmQg
YW55IGFjY29tcGFueWluZyBkb2N1bWVudHMgZnJvbSB5b3VyIG1haWxib3guIFRoYW5rIHlvdS4N
Cj4gDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18NCj4gQm9vc3QtdXNlcnMgbWFpbGluZyBsaXN0IC0tIGJvb3N0LXVzZXJzQGxpc3RzLmJv
b3N0Lm9yZw0KPiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGJvb3N0LXVzZXJzLWxl
YXZlQGxpc3RzLmJvb3N0Lm9yZw0KPiBodHRwczovL2xpc3RzLmJvb3N0Lm9yZy9tYWlsbWFuMy9s
aXN0cy9ib29zdC11c2Vycy5saXN0cy5ib29zdC5vcmcvDQo+IEFyY2hpdmVkIGF0OiBodHRwczov
L2xpc3RzLmJvb3N0Lm9yZy9hcmNoaXZlcy9saXN0L2Jvb3N0LXVzZXJzQGxpc3RzLmJvb3N0Lm9y
Zy9tZXNzYWdlL0VGUzNLQjVDRjRPVDJGSExFTE80M0dSWlI0VzZSV0xZLw0KX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQm9vc3QtdXNlcnMgbWFpbGluZyBs
aXN0IC0tIGJvb3N0LXVzZXJzQGxpc3RzLmJvb3N0Lm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFu
IGVtYWlsIHRvIGJvb3N0LXVzZXJzLWxlYXZlQGxpc3RzLmJvb3N0Lm9yZwpodHRwczovL2xpc3Rz
LmJvb3N0Lm9yZy9tYWlsbWFuMy9saXN0cy9ib29zdC11c2Vycy5saXN0cy5ib29zdC5vcmcvCkFy
Y2hpdmVkIGF0OiBodHRwczovL2xpc3RzLmJvb3N0Lm9yZy9hcmNoaXZlcy9saXN0L2Jvb3N0LXVz
ZXJzQGxpc3RzLmJvb3N0Lm9yZy9tZXNzYWdlL0YzUlFSRDQ0WlNMSVBVQ09RRVpZTzRWWkE2Q1lO
RVBULyAK