2017-01-08 11 views
0

Недавно я купил книгу под названием «Разработка игры SFML по примеру», и код дает мне некоторые проблемы.Ожидаемое выражение в C++, но я не могу найти ошибку

Вот линия дает мне неприятность:

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); 
} 

Я сделал все, что я могу думать. Я даже загрузил исходный код с веб-сайта книги, Ive проверил ошибки в файлах, чтобы увидеть, должно ли быть изменение. Другие люди, работающие над этой книгой, похоже, не имеют проблемы в этой части, и тот факт, что загрузка исходного кода все еще дает мне ошибку, заставляет меня думать, что это имеет какое-то отношение ко мне, но что?

+0

Какая версия языка C++ - это код, который должен соответствовать? Правильно ли настроили ваш компилятор для поддержки этой версии C++? –

+0

Он говорит, что для самой современной версии, но точно не указывает, я не знал, что это было что-то, что вы могли бы даже настроить, дайте мне понять, что быстро, – Riles

+0

Некоторые версии C++ требуют, чтобы компилятор выдавал ошибку для кода, который определяется как правовая для других версий C++. Вы должны знать, какая версия кода на C++ должна соответствовать, и вы должны настроить свой компилятор для этой версии. В противном случае успех невозможен, когда вы используете конструкции, которые являются законными в некоторых версиях и запрещены в других. –

ответ

0

Ваш код требует поддержки функций C++ 11, которые ваш компилятор не поддерживает. См. Список C++11 features для VS2012. Перейдите к более новой версии, полностью поддерживающей C++ 11, если вы хотите скомпилировать код C++ 11.

 Смежные вопросы

  • Нет связанных вопросов^_^