«std::string const» против «const std::string»C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 «std::string const» против «const std::string»

Сообщение Anonymous »

Странное поведение.
Я разрабатывал собственное приложение для Android на C++ и получил ошибку. Какая-то функция по каким-то причинам не была вызвана. после некоторого возврата и сравнения.

Это создало проблемы с программой..

const std::string STR_PATH_ASSET("assets/");
const std::string STR_PATH_SD("/sdcard/unlock_data/assets/");
const std::string STR_SUFFIX_PNG(".png");
const std::string STR_SUFFIX_KTX(".ktx");


Это заставляет программу работать.

std::string const STR_PATH_ASSET("assets/");
std::string const STR_PATH_SD("/sdcard/unlock_data/assets/");
std::string const STR_SUFFIX_PNG(".png");
std::string const STR_SUFFIX_KTX(".ktx");


В любом случае это работает, но я понятия не имею, почему эта разница приводит к такому странному поведению. Есть предположения??



Добавлен полный исходный код.

это была не только проблема «std::string const» и «const std::string», но и само это объявление. извините.

вот мой исходный код. когда я раскомментирую эти std::string, они работают неправильно. Я рисую что-то на своем Android, но начальное положение некоторых сеток (вершин) отличается при использовании этой вещи std::string. логически это не должно влиять на то, существуют эти константы или нет. Я использую компилятор ndk версии 4.6, ndk ver 14 в Windows Cygwin. повлияет ли это объявление const std::string на память другого стека? то есть. значение транзакции или что-то в этом роде?

typedef enum _ImageCompressType{
//REF http://stackoverflow.com/questions/9148 ... ompression
COMPRESS_UNAVAILABLE = -1,
COMPRESS_ETC1 = 1,
COMPRESS_PVRTC,
COMPRESS_ATITC,
COMPRESS_S3TC
}ImageCompressType;

typedef enum _FileDataFrom{
FROM_ASSET, FROM_SD
}FileDataFrom;

//std::string const STR_PATH_ASSET("assets/");
//std::string const STR_PATH_SD("/sdcard/unlock_data/assets/");
//std::string const STR_SUFFIX_PNG(".png");
//std::string const STR_SUFFIX_KTX(".ktx");

class ImagesLoader {
public:
ImagesLoader* mgr;

static ImagesLoader* getInstance();
static void destroyInstance();

ImageCompressType TypeImgComrpess;

// GLuint* loadTextures(FileDataFrom from, std::vector filename);
private:
ImagesLoader() {}
~ImagesLoader() {}

static ImagesLoader* self;
};


Подробнее здесь: https://stackoverflow.com/questions/176 ... -stdstring
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»