выполнится в рантайме или в компайл тайме?
проверь
почему тебя это беспокоит?
godbolt посмотри что получится
в компайл
по идее при выполнении, ты ведь инициализируешь чем-то
Наверное потому, что люди не зря стали придумывать constexpr и consteval. Хотят, чтобы больше было сделано в компайлтайме.
они точно не занимаются таким 🌚
Все с малого начинается.
так чем твой вопрос обусловлен? скоростью работы программы? поведение не то, которое ожидаешь? я без подвоха спросил, хочу понимать мотивацию вопроса
int64_t(-1) и static_cast<int64_t>(-1) идентичны в данном контексте
А почему тут это работает, а в случае auto v = MyIntegerType(-1) не будет?
что такое MyIntegerType? класс? но ведь int64_t - не класс
А как правильно называть int64_t?
так и называй, всякие ll это бесячее и не понятное
это алиас (на какой-то из фундаментальных типов)
Хорошо. Тогда, получается, для приведения к таким типам можно никогда не применять static_cast? Можно просто писать int64_t(val), int(val) или double(8)
это уже вопрос стиля. если речь про литерал, то лучше использовать суффиксы (кроме случаев, когда тип неизвестен - типа int64_t - там под капотом может быть long/long long). если речь про каст рантайм значения, то предпочтительнее static_cast, т.к. int64_t(..) ничем не лучше C-style cast'а
Что использовать, когда тип под капотом не известен?
вопрос стиля и вкуса
Ок. Крайний вопрос по этой теме. Чем int64_t(val) хуже статик каста?
не могу придумать хороших аргументов, кроме того, что он эквивалентен C-style касту, который общепринято плох
это можно нагуглить, чем отличаются
Не проще ли использовать 64 битный целочисленный литерал?
Да зря, зря, всё зря
Обсуждают сегодня