如果引用类型的变量是按值在lambda中捕获的,它是通过引用还是值捕获的?
有问题的小样本:
#include <iostream>
struct Test {
int a;
};
void testFunc(const Test &test) {
auto a = [=] {
// does 'test' is being passed to closure object with copy
// or by reference?
return test.a;
} ();
std::cout << a;
}
int main() {
Test test{1};
testFunc(test);
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一些带有大量二维图形的跨平台桌面应用程序.我使用OpenGL 2.0规范,因为我需要顶点着色器.我喜欢3.2+核心API,因为它的简单性和强大功能.我认为3.2+核心可能是未来的选择.但我担心现在某些平台上可能无法使用此功能(我的意思是旧的显卡和现代Linux驱动程序缺乏(?)).也许,我应该使用类似OpenGL ES 2.0的API,以便将来轻松移植.
什么是3.2+核心,卡和Linux驱动器的事态?
我在OpenGL中有混合问题(在抗锯齿或纹理绘画的结果).看问题图:
我有以下设置代码
// Antialiasing
glEnable(GL_POINT_SMOOTH);
glEnable(GL_LINE_SMOOTH);
// Blending
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
// Texture font
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
Run Code Online (Sandbox Code Playgroud)
请指出这个问题的解决方案.