小编Wag*_*ota的帖子

可连接的std :: thread不能自动加入的原因是什么?

有时,如果连接std::thread函具有thread::join()在析构函数上执行的能力,那将会很有用.请参阅以下示例.

示例1(错误):std::thread抛出异常后 对象已被销毁.一旦流退出作用域,就会在连接发生之前调用析构函数.它使STL显示'abort'的错误消息.

int main( int argc, const char * argv[] )
{
    try
    {
        thread t( [] ()
        {
            this_thread::sleep_for( chrono::seconds( 1 ) );
            cout << "thread done" << endl;
        } );

        throw exception( "some exception" );

        t.join();
    }
    catch ( const exception & )
    {
        cout << "exception caught!" << endl;
    }

    cout << "main done" << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

示例2(正确方法):t在try-catch块之前创建 对象,并在try和catch块上放置join().所以它保证了join()的发生.

int main( int argc, const char * …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading thread-safety language-lawyer c++11

8
推荐指数
1
解决办法
3296
查看次数

如何使用 Visual Studio C++ 绘制绘图图

我想使用带有 C++ 代码的 Visual Studio 创建一个绘图图表。图表应基于两个轴。“x”轴显示时间,“y”轴显示阵列数据。数组数据有 100 个元素,一秒内读取一个数据。如何使用任何其他图形库实现代码?

c++ graph visual-studio

5
推荐指数
2
解决办法
2万
查看次数

使用GLFW + GLEW时glGenFramebuffers()访问冲突

我收到此错误:

"访问冲突执行位置0x00000000."

当我在Windows上使用GLFW + GLEW时.

我正在使用Windows 7.我也有自己的实现(从头开始)创建一个窗口,初始化OpenGL上下文,初始化GLEW等等......一切正常.所以当然我的视频卡具有帧缓冲功能,驱动程序的一切都很好......问题只发生在我尝试使用GLFW时.

有什么建议吗?

代码:

void start()
{
    if( !glfwInit() )
    {
        glfwTerminate();
        throw exception( "Failed to initialize GLFW" );
    }

    glfwOpenWindowHint( GLFW_FSAA_SAMPLES, 4 );
    glfwOpenWindowHint( GLFW_OPENGL_VERSION_MAJOR, 3 );
    glfwOpenWindowHint( GLFW_OPENGL_VERSION_MINOR, 3 );
    glfwOpenWindowHint( GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE );

    if( !glfwOpenWindow( m_width, m_height, 0, 0, 0, 0, 32, 0, GLFW_WINDOW ) )
    {
        throw exception( "Failed to open GLFW window." );
        glfwTerminate();
    }

    if ( glewInit() != GLEW_OK )
    {
        throw exception( "Failed to initialize GLEW" );
    } …
Run Code Online (Sandbox Code Playgroud)

opengl fbo glew framebuffer glfw

3
推荐指数
1
解决办法
5049
查看次数

GL_TEXTURE_2D对于"2个纹理的非幂"有什么表现?

从理论上讲,OpenGL对于"2的幂"纹理具有GL_TEXTURE_2D,对于"2个纹理的非幂"具有GL_TEXTURE_RECTANGLE.

我想知道现代GPU是否仍然关心这种差异,或者这只是过去的问题.换句话说,如果我使用GL_TEXTURE_2D而不是GL_TEXTURE_RECTANGLE来表示"非幂2"纹理,那么现代显卡会不会有性能损失?

hardware opengl performance textures gpu

2
推荐指数
1
解决办法
432
查看次数