Boost logo

Boost :

From: Andrzej Krzemienski (akrzemi1_at_[hidden])
Date: 2024-09-30 16:20:09


Hi Everyone,
I would like to check if something like the following would be a useful
addition to Boost.Core, or if something like this maybe exists:

I have a class like
```
struct X
{
    std::string str;
    explicit X(const std::string& s) : str(s) {}
};
```

I need to transform a vector of strings into a vector of X through invoking
the constructor of X:

```
std::vector<std::string> strings = {"cat", "dog", "emu", "fox"};
std::vector<X> xs;

std::transform(strings.begin(), strings.end(),
std::back_inserter(xs),[](auto const& s) {
  return X(s);
}));
```

It works, but a shorter version would be to introduce a component that is
equivalent to the lambda:

```
std::transform(strings.begin(), strings.end(), std::back_inserter(xs),
construct<X>));
```

The full example:
https://godbolt.org/z/85YoP9Pa9

Regards,
&rzej;


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk