我试图在Visual Studio 2012中使用委派构造函数。以下代码在Xcode 4.6中编译,但在Visual Studio 2012中不编译:
在.h文件中
class ErrorReportDlg : public QDialog
{
public:
ErrorReportDlg(OwlExceptionPtr ex, QWidget *parent);
ErrorReportDlg(QWidget *parent);
virtual ~ErrorReportDlg();
}
在.cpp文件中
// FWIW, OwlExceptionPtr is
// typdef boost::shared_ptr<OwlException> OwlExceptionPtr
ErrorReportDlg::ErrorReportDlg(OwlExceptionPtr ex, QWidget *parent)
: QDialog(parent),
_error(ex)
{
// stuff
}
ErrorReportDlg::ErrorReportDlg(QWidget *parent)
: ErrorReportDlg(OwlExceptionPtr(), parent) // <--- error here
{
// do nothing
}
我得到的错误是:
我究竟做错了什么?谢谢!
最佳答案
根据MSDN,VS 2012不支持立即使用委托(delegate)的构造函数。
在安装November 2012 CTP(编译器技术预览)时,您将获得委派的构造函数(以及许多其他C++ 11功能)。安装之后,切换项目以使用CTP作为其工具集(通过Project properties
),就可以设置好了。