Не могу найти символы в stdint.h

Когда я использовал Apportable для моего исходного кода C ++, он не может найти символы, определенные в stdint.h,

error: use of undeclared identifier 'UINT8_MAX'

Код хорошо работал с Xcode, и эта ошибка возникала только в Apportable. я добавил #include <cstdint>, но это не было никакого эффекта.

Вот мой ток .cpp файл.

#include <cstdint>
#include "Pixel.h"
namespace
Eonil
{
namespace
Graphics
{
using namespace std;

Pixel::Pixel(glm::vec4 const vector)
{
r   =   vector.r * ((Scalar)UINT8_MAX);
g   =   vector.g * ((Scalar)UINT8_MAX);
b   =   vector.b * ((Scalar)UINT8_MAX);
a   =   vector.a * ((Scalar)UINT8_MAX);
}

glm::vec4 const
Pixel::vector() const
{
return  glm::vec4(((Scalar)r) / ((Scalar)UINT8_MAX),
((Scalar)g) / ((Scalar)UINT8_MAX),
((Scalar)b) / ((Scalar)UINT8_MAX),
((Scalar)a) / ((Scalar)UINT8_MAX));
}
}
}

Что мне не хватает?

2

Решение

Макросы доступны, когда определено __STDC_LIMIT_MACROS (кроме того, __STDC_CONSTANT_MACROS, похоже, также отсутствует). Это, вероятно, неправильно gated или отсутствует при компиляции c ++. Objective-C и C используют эти определения для UINT8_MAX и сопутствующих макросов. На данный момент вы можете определить оба этих макроса глобально, и это не должно иметь негативных последствий для вашего проекта.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]