Определите переменные и шаблон - PullRequest
0 голосов
/ 15 марта 2019

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

Каковы плюсы и минусы использования определений и шаблонов постоянных переменных.

#define TRAINABLE_LABEL "Trainable:"
#define TRAINABLE_ONE "Easily trainable"
#define TRAINABLE_TWO "Moderately trainable"
#define TRAINABLE_THREE "Highly trainable"

В шаблоне:

const QString TRAINABLE_LABEL = "Trainable:"
const QString TRAINABLE_ONE = "Easily trainable";
const QString TRAINABLE_TWO = "Moderately trainable";
const QString TRAINABLE_THREE = "Highly trainable";

1 Ответ

2 голосов
/ 15 марта 2019

Прежде всего: почему вы называете это шаблонами?

С простым #define вы действительно не защищены от переопределения определенного макроса, типа и т. Д. Поэтому макросов для этих вещей следует избегать.

Лучше всего было бы использовать constexpr char*.Это дает вам то же поведение, что и макрос, и выдаст ошибку при переопределении некоторой переменной.

...