Size: a a a

2020 December 17

SS

Sergey Skvortsov in pro.cxx
Здорово
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander Tulikov
От литералов имён переменных к самим переменным без рефлексии не перейдёшь.
Этот переход не нужен
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander Tulikov
От литералов имён переменных к самим переменным без рефлексии не перейдёшь.
f"Hello, {name}" -> std::format("Hello, {}", name);

Где тут рефлексия нужна?
источник

AT

Alexander Tulikov in pro.cxx
Побитый Кирпич
f"Hello, {name}" -> std::format("Hello, {}", name);

Где тут рефлексия нужна?
Ты думаешь это на макросах можно сделать?
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander Tulikov
Ты думаешь это на макросах можно сделать?
Почему на макросах? Пусть компилятор при виде f сам это делает
источник

ПК

Побитый Кирпич... in pro.cxx
Я же говорю - сахар
источник

AM

Alexander Malkov in pro.cxx
сейчас можно сделать обычный
const char* str = "Hello, {}";
и это использовать
источник

AM

Alexander Malkov in pro.cxx
а если туда подставлять жестко переменные, то это может вызвать проблемы в памяти
источник

AT

Alexander Tulikov in pro.cxx
Побитый Кирпич
Почему на макросах? Пусть компилятор при виде f сам это делает
А, как фича языка отдельная. Не думаю, что с этим будут заморачиваться.
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander Malkov
а если туда подставлять жестко переменные, то это может вызвать проблемы в памяти
Посмотри сообщение выше и укажи где там могут быть проблемы с памятью?
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander Tulikov
А, как фича языка отдельная. Не думаю, что с этим будут заморачиваться.
в питоне и C# заморочились - в С++ тоже можно
источник

AM

Alexander Malkov in pro.cxx
const char* name = "World";
const char* str = "Hello, {name}";
print(str);

Вот так оно работать по идее должно?)
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander Malkov
const char* name = "World";
const char* str = "Hello, {name}";
print(str);

Вот так оно работать по идее должно?)
Нет:
const char* name = "World";
const auto str = f"Hello, {name}";
print(str);
источник

AM

Alexander Malkov in pro.cxx
Побитый Кирпич
Нет:
const char* name = "World";
const auto str = f"Hello, {name}";
print(str);
ок.) тогда все норм)
источник

AM

Alexander Malkov in pro.cxx
только вопрос тогда, возможно ли такое будет провернуть в рантайме? или только время компиляции?
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander Malkov
только вопрос тогда, возможно ли такое будет провернуть в рантайме? или только время компиляции?
Только  на компиляции
источник

AM

Alexander Malkov in pro.cxx
Побитый Кирпич
Только  на компиляции
Вот...
источник

ПК

Побитый Кирпич... in pro.cxx
В рантайме через рефлексию, но это уже другая фича. 99% юзкейсов - строка известна  на этапе компиляции
источник

AT

Alexander Tulikov in pro.cxx
Побитый Кирпич
в питоне и C# заморочились - в С++ тоже можно
Это потребует завязки языка на стандартную библиотеку, а в С++ этого не любят.
источник

AM

Alexander Malkov in pro.cxx
Побитый Кирпич
В рантайме через рефлексию, но это уже другая фича. 99% юзкейсов - строка известна  на этапе компиляции
однако, если мы получаем данные из БД - это уже рантайм и сериализуем их - а это огромное количество кейсов..
источник