C ++中的预期表达式,但我无法找到错误

时间:2017-01-08 19:29:37

标签: c++ expression sfml

我最近买了一本名为" SFML Game Development by Example"而且代码给了我一些问题。

以下是给我带来麻烦的一线:

m_window.create({ m_windowSize.x, m_windowSize.y, 32 }, m_windowTitle, style);

括号与大括号({相遇时,它告诉我有一个预期的表达式。

以下是整个文件的代码

#include "Window.h"

Window::Window(){
    Setup("Window", sf::Vector2u(640, 480));
}

Window::Window(const std::string& l_title, const sf::Vector2u& l_size){
    Setup(l_title, l_size);
}

Window::~Window(){
    Destroy();
}

void Window::Setup(const std::string& l_title, const sf::Vector2u& l_size){
    m_windowTitle = l_title;
    m_windowSize = l_size;
    m_isFullscreen = false;
    m_isDone = false;
    Create();
}

void Window::Create(){
    auto style = (m_isFullscreen ? sf::Style::Fullscreen : sf::Style::Default);
    m_window.create({ m_windowSize.x, m_windowSize.y, 32 }, m_windowTitle, style);
}

void Window::Destroy(){
    m_window.close();
}

void Window::Update(){
    sf::Event event;
    while(m_window.pollEvent(event)){
        if(event.type == sf::Event::Closed){
            m_isDone = true;
        }else if(event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::F5){
            ToggleFullscreen();
        }
    }
}

void Window::ToggleFullscreen(){
    m_isFullscreen = !m_isFullscreen;
    Destroy();
    Create();
}

void Window::BeginDraw(){
    m_window.clear(sf::Color::Black);
}

void Window::EndDraw(){
    m_window.display();
}

bool Window::IsDone(){
    return m_isDone;
}

bool Window::IsFullscreen(){
    return m_isFullscreen;
}

sf::Vector2u Window::GetWindowSize(){
    return m_windowSize;
}

void Window::Draw(sf::Drawable& l_drawable){
    m_window.draw(l_drawable);
}

我做了我能想到的一切。我甚至从书的网站上下载了源代码,我已经检查过书籍勘误表,看看是否应该有变化。其他从事这本书的人似乎在这部分没有问题,下载源代码仍然给我错误的事实让我觉得它与我有关,但是什么?

1 个答案:

答案 0 :(得分:0)

您的代码需要支持编译器不支持的C ++ 11功能。请参阅VS2012的C++11 features列表。如果要编译C ++ 11代码,请升级到完全支持C ++ 11的更新版本。