Излишне объяснять. Следующий код очевиден:
struct X
{
X(int n){}
};
int main()
{
std::vector<int> src;
std::vector<X> dest;
// Below is not valid in current C++, but that is just what I want.
transform(src.begin(), src.end(), back_insert(dest), std::bind(&X::X, _1));
}
Конструктор принимает некоторые аргументы и возвращает объект класса конструктора.
Конструктор выглядит как функция, действует как функция и в точности является функцией.
] Итак, я думаю, что std :: bind должен одинаково обрабатывать конструкторы и другие вызываемые объекты.
Однако как я могу расширить шаблон функции «bind», чтобы реализовать это?