Лучшая практика для управления строковыми литералами - PullRequest
0 голосов
/ 01 октября 2018

Каковы рекомендации по управлению строками в одном файле вместо записи их несколько раз?Моя идея состоит в том, чтобы создать простой файл string_library.h, содержащий все строки на карте и удобные определения для получения имен и идентификаторов.Примерно так:

#include <string>
#include <map>

#define SENSOR1_ID 0
#define SENSOR2_ID 1

#define SENSOR1_NAME string_library[SENSOR1_ID]
#define SENSOR2_NAME string_library[SENSOR2_ID]

std::map<unsigned int, const std::string> string_library{
std::make_pair(SENSOR1_ID, "Sensor1 Name"),
std::make_pair(SENSOR2_ID, "Sensor2 HI Name")
};

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

1 Ответ

0 голосов
/ 01 октября 2018

Вы можете просто использовать переменную constexpr:

constexpr auto SENSOR1_NAME = "Sensor1 Name";

Нет необходимости в макросах и дорогостоящих накладных расходах динамической памяти.

...