Am 07.11.2016 um 13:43 schrieb Lee Clagett:
On Sun, 6 Nov 2016 09:30:18 +0100 Klemens Morgenstern
wrote: Am 06.11.2016 um 01:39 schrieb Lee Clagett:
On Sat, 5 Nov 2016 17:15:58 +0100 Bjorn Reese
wrote: I'm glad you brought this up - I think Niall did as well - if you look at the constructor documentation for `process::child` it is very bare. And I am not sure how to easily describe how to use it. I think maintainability is going to be difficult without a more strict contract of expected arguments and behavior. That is because it is one of the three launch functions, but their are actually quite clearly defined. You either pass a known type that will be intepreted as some property (i.e. std::string->args) or you
[...] [...] [...] pass a property directly, i.e. args+="Value". That is quite clear, but it is extensible, hence the list of actually allowed types are written in the reference at the properties, not in a central list. Is the following clear:
bp::child("foo", "arg1" bp::stdout < bp::null, bp::args="arg2");
Does the last constructor argument clear all `argument properties` used by the child? Would this try to invoke process "arg2"?
This would not compile for other reasons. But if you put a bp::args=... somewhere it overridesprior arg-setters; that's why you'd use bp::args+=.... But that only overrides args, not exe, so if you write "bp::child("foo", "arg1", bp::args="arg2") it would call "foo arg2".