On 11/05/2016 02:47 PM, Klemens Morgenstern wrote:
auto c = child("foo").args("bar"). std_out(pipe).std_err(null);
That is not the syntax I have proposed. The core of my proposal is to keep attributes separate from arguments (granted, this was not explicitly mentioned before.) You mentioned elsewhere that you modelled bp::child after thread. Boost.Thread handles attributes separate from arguments. The syntax for creating attributes is less important to me, although I would strongly prefer a syntax where invalid attribute parameters results in reasonable compiler error messages (e.g. not SFINAE errors.)
child antlr("java"); antlr("-jar", "antlr4.jar", "language.g4"); //here I'd much rather have antlr("language.g4");
I do not recall having imposed any constraints on how arguments are collected. I would fine with something like this: argument with_jar = {"-jar", "antlr4.jar"}; antlr(with_jar, "language.g4");
It's not an argument in a discussion really, it's just what I though would make the most sense. I though it ain't CWD, i.e. current working directory, but it's the one it's starts in, hence start_dir. It's a directory not a path, because that might a path to a file.
Then initial_path() as used by Boost.Filesystem may be a better name.