0 / 0 / 0
Регистрация: 09.03.2019
Сообщений: 9
1

Ошибка SFML C2589: недопустимая лексема справа от "::"

09.03.2019, 12:03. Показов 9379. Ответов 15
Метки нет (Все метки)

При компиляции Visual Studio 2017 жалуется на эти строчки из библиотеки SFML
C++
1
 T minX = std::min(left, static_cast<T>(left + width));
и
C++
1
 T r1MinX = std::min(left, static_cast<T>(left + width));
Ошибка - C2589 (: недопустимая лексема справа от "::"
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2019, 12:03
Ответы с готовыми решениями:

XML Request и ошибка "Недопустимая лексема "=" в объявлении класса, структуры или интерфейса"
Пишу отправку xml запроса,компилятор ругается. using System; using System.Configuration;...

Ошибка "Недопустимая лексема "{" в объявлении класса, структуры или интерфейса"
Ошибка &quot;Недопустимая лексема &quot;{&quot; в объявлении класса, структуры или интерфейса&quot;, помогите! Вот...

Ошибка 7 Недопустимая лексема "(" в объявлении класса, структуры или интерфейса
using System; using System.Text; namespace PropertiesExample3 { //обьявление класса...

Ошибка недопустимая лексема "("
Ошибка не допустимая лексема &quot;(&quot; как исправить На всякий условие задачи: Определить проводник с...

15
892 / 350 / 79
Регистрация: 17.05.2015
Сообщений: 1,152
09.03.2019, 13:26 2
Цитата Сообщение от Sorato Посмотреть сообщение
std::min
В настройках проекта объявите дефайн препроцессора: NOMINMAX

Либо перед включением хедеров SFML напишите:
C++
1
#define NOMINMAX
1
0 / 0 / 0
Регистрация: 09.03.2019
Сообщений: 9
09.03.2019, 13:57  [ТС] 3
Не помогло
0
1966 / 1093 / 465
Регистрация: 11.10.2018
Сообщений: 5,586
09.03.2019, 14:02 4
C++
1
#include <algorithm>
- вот это, наверное, забыли написать.
0
0 / 0 / 0
Регистрация: 09.03.2019
Сообщений: 9
10.03.2019, 12:38  [ТС] 5
#define NOMINMAX - есть
#include <algorithm> - есть
Ошибка - есть
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
11.03.2019, 11:00 6
Минимальный код, демонстрирующий проблему приведите.
0
0 / 0 / 0
Регистрация: 09.03.2019
Сообщений: 9
11.03.2019, 17:15  [ТС] 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool Rect<T>::contains(T x, T y) const
{
    // Rectangles with negative dimensions are allowed, so we must handle them correctly
 
    // Compute the real min and max of the rectangle on both axes
    T minX = std::min(left, static_cast<T>(left + width));
    T maxX = std::max(left, static_cast<T>(left + width));
    T minY = std::min(top, static_cast<T>(top + height));
    T maxY = std::max(top, static_cast<T>(top + height));
 
    return (x >= minX) && (x < maxX) && (y >= minY) && (y < maxY);
}
и
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
bool Rect<T>::intersects(const Rect<T>& rectangle, Rect<T>& intersection) const
{
    // Rectangles with negative dimensions are allowed, so we must handle them correctly
 
    // Compute the min and max of the first rectangle on both axes
    T r1MinX = std::min(left, static_cast<T>(left + width));
    T r1MaxX = std::max(left, static_cast<T>(left + width));
    T r1MinY = std::min(top, static_cast<T>(top + height));
    T r1MaxY = std::max(top, static_cast<T>(top + height));
 
    // Compute the min and max of the second rectangle on both axes
    T r2MinX = std::min(rectangle.left, static_cast<T>(rectangle.left + rectangle.width));
    T r2MaxX = std::max(rectangle.left, static_cast<T>(rectangle.left + rectangle.width));
    T r2MinY = std::min(rectangle.top, static_cast<T>(rectangle.top + rectangle.height));
    T r2MaxY = std::max(rectangle.top, static_cast<T>(rectangle.top + rectangle.height));
 
    // Compute the intersection boundaries
    T interLeft   = std::max(r1MinX, r2MinX);
    T interTop    = std::max(r1MinY, r2MinY);
    T interRight  = std::min(r1MaxX, r2MaxX);
    T interBottom = std::min(r1MaxY, r2MaxY);
 
    // If the intersection is valid (positive non zero area), then there is an intersection
    if ((interLeft < interRight) && (interTop < interBottom))
    {
        intersection = Rect<T>(interLeft, interTop, interRight - interLeft, interBottom - interTop);
        return true;
    }
    else
    {
        intersection = Rect<T>(0, 0, 0, 0);
        return false;
    }
}
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
11.03.2019, 17:56 8
И? Я вот это возьму, вставлю в студийный проект и получу 100500 ошибок, никак не связанных с текущей темой.
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
11.03.2019, 20:14 9
у тебя так работает?
C++
1
int interLeft   = std::max(56, 76);
или

C++
1
int interLeft   = max(56, 76);
0
0 / 0 / 0
Регистрация: 09.03.2019
Сообщений: 9
12.03.2019, 16:10  [ТС] 10
Добавлено через 1 минуту
Если вы имели ввиду мой код, то вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include "stdafx.h"
#include <SFML/Graphics.hpp>
#include <algorithm>
 
#define NOMINMAX
 
 
using namespace std;
using namespace sf;
 
int main()
{
    RenderWindow window(VideoMode(200, 200), "SFMLworks");
    CircleShape shape(100.f);
    shape.setFillColor(Color::Green);
 
    while (window.isOpen())
    {
        Event event;
        while (window.pollEvent(event))
        {
            if (event.type == Event::Closed)
                window.close();
        }
 
        window.clear();
        window.draw(shape);
        window.display();
    }
 
    return 0;
}
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
12.03.2019, 17:26 11
Sorato, написали же, добавить NOMINMAX ДО ВКЛЮЧЕНИЯ заголовков.
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
12.03.2019, 22:50 12
Цитата Сообщение от Sorato Посмотреть сообщение
C++
1
2
using namespace std;
using namespace sf;
автор sfml не рекомендует использовать так как это может вызвать мноожество ошибок, про с++ думаю так же
0
0 / 0 / 0
Регистрация: 09.03.2019
Сообщений: 9
13.03.2019, 15:16  [ТС] 13
ДОБАВЛЯЛ, до включения заголовков, но проблема остаётся!

Добавлено через 1 минуту
Цитата Сообщение от Antikl Посмотреть сообщение
автор sfml не рекомендует использовать так как это может вызвать мноожество ошибок, про с++ думаю так же
смотрел ролик по работе с SFML, автор использовал эти строки и ошибок у него не было
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
13.03.2019, 16:59 14
Sorato, никому не интересна мистика.
Вы привели код, в котором продемонстрировали,
что написано не так как должно.
А если NOMINMAX добавить до включения заголовков,
то в данном коде вылезет другая проблема.
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
13.03.2019, 18:11 15
Цитата Сообщение от Sorato Посмотреть сообщение
смотрел ролик по работе с SFML, автор использовал эти строки и ошибок у него не было
какой ролик? я попробывал все у меня работает, код выкладывай ничего не ясно что там твориться в вашем проекте
0
0 / 0 / 0
Регистрация: 09.03.2019
Сообщений: 9
13.03.2019, 22:14  [ТС] 16
Проблема решена.
ЗАКРЫТО
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2019, 22:14
Помогаю со студенческими работами здесь

Недопустимая лексема "for" в объявлении класса, структуры или интерфейса
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Недопустимая лексема "=" в объявлении класса, структуры или интерфейса
public bool FirstRun { get; set; } = true; public List&lt;ManifestEntry&gt; Entries...

Недопустимая лексема "=" в объявлении класса
Здравствуйте, помогите исправить ошибки using System; using System.Collections.Generic; using...

Ошибка "Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "richTextBox1" не из того потока, в котором он был создан."
Код клиента: public partial class Form1 : Form { string IP; string Port;...

Ошибка C1075 "{": не найдена соответствующая лексема
помогите пожалуйста, нужно решить задачу, но я не пойму, что не так: #include &lt;math.h&gt; ...

Ошибка "Error C2017: недопустимая escape-последовательность"
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; double Z(double x); int main() {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru