C++11 什么是C++;此Nana演示代码中使用的功能?
在上,Nana GUI人举了一个例子:C++11 什么是C++;此Nana演示代码中使用的功能?,c++11,nana,C++11,Nana,在上,Nana GUI人举了一个例子: #include<nana/gui.hpp> int main() { using namespace nana; form fm; drawing{fm}.draw([](paint::graphics& graph){ graph.string({10, 10}, L"Hello, world!", colors::red); }); fm.events().cl
#include<nana/gui.hpp>
int main()
{
using namespace nana;
form fm;
drawing{fm}.draw([](paint::graphics& graph){
graph.string({10, 10}, L"Hello, world!", colors::red);
});
fm.events().click(API::exit);
fm.show();
exec();
}
#包括
int main()
{
使用名称空间nana;
表格fm;
绘图{fm}.draw([](绘图::图形和图形){
字符串({10,10},L“你好,世界!”,颜色::红色);
});
fm.events()。单击(API::exit);
fm.show();
exec();
}
在开始的行中使用的C++特征是什么:绘制{FM}……绘制……/P>
我从未见过像这样使用{}。它被称为统一初始化,是在C++11中添加的。有关更多信息,请参见例如 在您的特定示例中,
drawing
的未命名实例使用fm
作为drawing
的构造函数的实际参数进行构造。然后在此drawing
实例上调用drawing
方法。这也可能是使用正常参数编写的:
drawing(fm).draw([](paint::graphics& graph){
graph.string({10, 10}, L"Hello, world!", colors::red);
});
有一些细微的区别:即使用
{}
将有利于采用初始值设定项列表的构造函数(如果存在这样的构造函数);使用{}
可以避免;并且使用{}
可以避免隐式的有损参数缩小。有关更多详细信息,请参阅。因此正在构造一个临时或未命名的“绘图”对象,并将fm变量传递给构造函数,然后新对象将调用其draw()函数。对吗?考虑可读性。是的,我能看懂。但是这样做的时候,我在画{fm}…
的时候也有点磕磕绊绊。你并不孤单,史酷特。