LINUX.ORG.RU

Ругается компилятор

 , , , ,


0

1
void__ Scene2::DrawNumeric(int__ num,int__ position)
{
	int__ j = -1,jj=-1;
	std::string str = "";
	for (auto && v : std::to_string(num)) {
		//std::cout << v /*- '0'*/ << "|";
		str += v;
		++j;
		switch (str[j])
		{
		case '0':
		{
			glBindTexture(GL_TEXTURE_2D, IndexTexture[62]);
			EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63+position], j);
			break;
		}
		case '1':
		{
			glBindTexture(GL_TEXTURE_2D, IndexTexture[63]);
			EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
			break;
		}
		case '2':
		{
			glBindTexture(GL_TEXTURE_2D, IndexTexture[64]);
			EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
			break;
		}
		case '3':
		{
			glBindTexture(GL_TEXTURE_2D, IndexTexture[65]);
			EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
			break;
		}
		case '4':
		{
			glBindTexture(GL_TEXTURE_2D, IndexTexture[66]);
			EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
			break;
		}
		case '5':
		{
			glBindTexture(GL_TEXTURE_2D, IndexTexture[67]);
			EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
			break;
		}
		case '6':
		{
			glBindTexture(GL_TEXTURE_2D, IndexTexture[68]);
			EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
			break;
		}
		case '7':
		{
			glBindTexture(GL_TEXTURE_2D, IndexTexture[69]);
			EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
			break;
		}
		case '8':
		{
			glBindTexture(GL_TEXTURE_2D, IndexTexture[70]);
			EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
			break;
		}
		case '9':
		{
			glBindTexture(GL_TEXTURE_2D, IndexTexture[71]);
			EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
			break;
		}
		}
	}
}
ошибки в вижуалке 2015 все ок, а в 2010 вот в строке с for:
Ошибка	11	error C2143: синтаксическая ошибка: отсутствие "," перед ":"	E:\флешка\other\nottoch\Tropic-Island\Tropic-Island\game3\research_very_goodZZZ\Scene2.cpp	452
Ошибка	12	error C2530: v: ссылки должны быть инициализированы	E:\флешка\other\nottoch\Tropic-Island\Tropic-Island\game3\research_very_goodZZZ\Scene2.cpp	452
Ошибка	13	error C3531: v: символ, тип которого содержит спецификатор "auto" должен иметь инициализатор	E:\флешка\other\nottoch\Tropic-Island\Tropic-Island\game3\research_very_goodZZZ\Scene2.cpp	452
Ошибка	14	error C2143: синтаксическая ошибка: отсутствие ";" перед "{"	E:\флешка\other\nottoch\Tropic-Island\Tropic-Island\game3\research_very_goodZZZ\Scene2.cpp	452



Последнее исправление: Gremlin_ (всего исправлений: 3)

switch (str[j])
		{
		case '0':
....

Я бы тоже ругался, отморозок обдолбанный.

crutch_master ★★★★★
()

Я бы тоже ругался на человека который не умеет в инкапсуляцию и пишет портянки уровня 4 копи пастой.

pon4ik ★★★★★
()
case '0':
{
	glBindTexture(GL_TEXTURE_2D, IndexTexture[62]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63+position], j);
	break;
}
case '1':
{
	glBindTexture(GL_TEXTURE_2D, IndexTexture[63]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
	break;
}
case '2':
{
	glBindTexture(GL_TEXTURE_2D, IndexTexture[64]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
	break;
}
case '3':
{
	glBindTexture(GL_TEXTURE_2D, IndexTexture[65]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
	break;
}
case '4':
{
	glBindTexture(GL_TEXTURE_2D, IndexTexture[66]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
	break;
}
case '5':
{
	glBindTexture(GL_TEXTURE_2D, IndexTexture[67]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
	break;
}
case '6':
{
	glBindTexture(GL_TEXTURE_2D, IndexTexture[68]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
	break;
}
case '7':
{
	glBindTexture(GL_TEXTURE_2D, IndexTexture[69]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
	break;
}
case '8':
{
	glBindTexture(GL_TEXTURE_2D, IndexTexture[70]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
	break;
}
case '9':
{
	glBindTexture(GL_TEXTURE_2D, IndexTexture[71]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
	break;
}

Жуть какая. Почему бы не сделать так?

char c = str[j];
if (0 <= j && j <= 9)
  {
	glBindTexture(GL_TEXTURE_2D, IndexTexture[62 + c]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
  }

// Остальное не смотрел, мне и этого хватило

XMs ★★★★★
()
Последнее исправление: XMs (всего исправлений: 1)

В 2010ой студии полной поддержки 11ого стандарта нет...

Очень интересная конструкция с rvalue ссылками в цикле, пояснишь смысл? Или главное ружжё побольше и ногу поближе?

onhydro
()

Так, а теперь медленно положи компилятор, покажи пустые руки, и отойди от компьютера на пару метров, тогда никто не пострадает.

redgremlin ★★★★★
()
Ответ на: комментарий от onhydro

Очень интересная конструкция с rvalue ссылками в цикле

Работает так же как auto && работает в других местах. Тип выводится как T & для lvalue и как T && для rvalue. Со временем жизни объектов там проблем нет.

xaizek ★★★★★
()
Последнее исправление: xaizek (всего исправлений: 1)
Ответ на: комментарий от XMs
char c = str[j];
if (0 <= j && j <= 9)
  {
	glBindTexture(GL_TEXTURE_2D, IndexTexture[62 + c]);
	EnableTexture(NewTextureCoordinats[0], NewVertexCoordinats[63 + position], j);
  }

Разве 62+c, а может 62+c-48?
Gremlin_
() автор топика
Ответ на: комментарий от BceM_IIpuBeT

Это не лаба, наспех делал чтобы мысль не потерять

Gremlin_
() автор топика
Ответ на: комментарий от onhydro

смысл берем число,берем конкретный разряд и подставляем вместо него изображения числа от 0 до 9 рисуем сдвигая вправо на разряд чтобы не рисовать одно число на координатах следующего

Gremlin_
() автор топика
Ответ на: комментарий от rupert

проект чисто как хобби, с дальнейшей возможной коммертизацией

Gremlin_
() автор топика
Ответ на: комментарий от crutch_master

ты же любишь костыли, ну покажи как можно выделить память , заполнить её изображениями и выбирать когда нужно конкретное изображение, а потом освобождать память?

Gremlin_
() автор топика
Ответ на: комментарий от Gremlin_

Да, забыл об этом. Только не 48, а '0', чтобы было читаемо

XMs ★★★★★
()
Ответ на: комментарий от XMs

Ну я так писал на qbasic в 4, или 5м (наверно в 5м, 4й мы «проскочили») классе, про циклы знал, но что можно использовать счётчик цикла в теле - это было озарение.

DELIRIUM ☆☆☆☆☆
()
14 декабря 2018 г.
3 октября 2019 г.
Ответ на: комментарий от anonymous

А что, forwarding reference это не rvalue reference?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.