如何将参数绑定到构造函数?
How do I bind arguments to a constructor?
如上所述,我想使用 std::bind
创建一个函数,当被调用时,returns 一个使用构造函数构建的对象,默认参数如下:
#include <functional>
class X
{
int x_, y_;
public:
X(int x, int y): x_(x), y_(y)
{
}
};
int main() {
auto fun = std::bind(&X::X, 1, 2);
X x = fun();
}
相反,我收到以下编译器错误:
error: qualified reference to 'X' is a constructor name rather than a type in this context
error: expected '(' for function-style cast or type construction
In reference to this line:
auto fun = std::bind(&X::X, 1, 2);
评论回答了这个问题。显然 std::bind
不能与构造函数和析构函数一起使用,因为它们的地址不能被占用。感谢 Eugene、The Philomath 和 molbdnilo。
如上所述,我想使用 std::bind
创建一个函数,当被调用时,returns 一个使用构造函数构建的对象,默认参数如下:
#include <functional>
class X
{
int x_, y_;
public:
X(int x, int y): x_(x), y_(y)
{
}
};
int main() {
auto fun = std::bind(&X::X, 1, 2);
X x = fun();
}
相反,我收到以下编译器错误:
error: qualified reference to 'X' is a constructor name rather than a type in this context
error: expected '(' for function-style cast or type construction In reference to this line:
auto fun = std::bind(&X::X, 1, 2);
评论回答了这个问题。显然 std::bind
不能与构造函数和析构函数一起使用,因为它们的地址不能被占用。感谢 Eugene、The Philomath 和 molbdnilo。