Мы переносим часть нашего кода с C++ 03 на C++ 14 и везде, где есть некоторое увеличение производительности, мы хотим использовать функции C++ 14. Теперь в одном из наших проектов мы разбор CSV на основе столбцов имен, и эти имена столбцов объявляются в одном заголовочном файле, как это:constexpr string vs const string
const string ITEM_NAME = "Item Name";
const string ITEM_ID = "Item Id";
есть сто констант, как это так, что я хочу знать, есть ли значительный выигрыш Performace если я изменить выше код на что-то вроде этого:
constexpr string ITEM_NAME = "Item Name";
constexpr string ITEM_ID = "Item Id";
Также существует лимит на количество constexpr, которые мы можем иметь в нашем двоичном формате, поскольку они должны храниться в памяти только для чтения?
Может ли компилятор автоматически оптимизировать старый код C++ 03 и переместить константные переменные в память только для чтения, и это не стоит?
Off topic: Похоже, ваша команда загрязняет глобальное пространство имен «использованием пространства имен std;» в заголовке или в некоторых чрезвычайно широких областях. Рискованный и доставит вам много проблем в некоторых местах. – user4581301
нет, у нас есть все эти константы внутри пространства имен csvconst – Kapil
Ha! Научите меня использовать «есть» вместо «может быть». Я потратил слишком много времени, мучившись над неправильным формулированием перед публикацией. Я стою. – user4581301