什么是在C++ 98中初始化Matrix的正确方法?
问题描述:
- 我不是程序员
- 我想要编译Inkscape中在Win32中,并无意中发现了这些错误消息:
ui/dialog/filedialogimpl-win32.cpp:1379: error: in C++98 'matrix' must be initialized by constructor, not by '{...}'
make[1]: *** [ui/dialog/filedialogimpl-win32.o] Error 1什么是在C++ 98中初始化Matrix的正确方法?
的filedialogimpl-win32.cpp
涉嫌代码:
... // Draw the image if(_preview_bitmap_image) // Is the image a pixbuf? { // Set the transformation const Matrix matrix = { scaleFactor, 0, 0, scaleFactor, svgX, svgY }; context->set_matrix (matrix); ...
所以它如何用C++ 98标准编写?
我用谷歌搜索它,但没有人遇到过这种方式,它可能是无关的?
答
而不是
const Matrix matrix = { scaleFactor, 0, 0, scaleFactor, svgX, svgY };
应该是这样的:
const Matrix matrix( scaleFactor, 0, 0, scaleFactor, svgX, svgY);
+0
谢谢!这对我有用 – twinkletoes 2009-12-03 14:00:00
你确定你使用正确的工具(编译器)? – kgiannakakis 2009-12-02 15:05:59
你从哪里得到代码,并且你确定它自从上次已知的良好配置以来没有改变过?什么样的编译器和它的目标是什么,你在用什么?而且,为什么在编译时不是程序员,而不是下载MS Windows .exe文件? – 2009-12-02 15:59:20
哦......标准中没有什么叫Matrix。这是在某个地方的源代码中定义的类。如果你需要帮助,文本搜索“class Matrix”和“Matrix :: Matrix”并发布一些代码。或者准确地发布你获得源代码的位置,以及源代码中的确切文件名(通常是MS Windows的.zip文件)。 – 2009-12-02 16:01:23