return [&loc]<typename T, typename... Args>(Args &&...args) noexcept [[msvc::forceinline]] -> gnaPointer<T> {
return gnaPointer<T>(gtlNewWithFileLineNothrow(loc.file_name(), loc.line()) T(std::forward<Args>(args)...));
};
}
#define gnaNew gnaNewWithSourceLocation().template operator()
кстати, не подскажешь как это сделать без макроса?
а поч у тебя функция вообще констекспр если сорслок не констекспр кст
дефолт аргументы вычисляются в контексте вызывающего :)
> T(std::forward<Args>(args)...) а зачем...
ты просто арги передаешь а потом тупо создаешь T для мува не проще ли просто принять T и мувнуть?
и да, я не муваю T
я могу заменить gnaPointer на сырой указатель как закину на годболт?
ну я так понимаю это твой уптр какой-то
Обсуждают сегодня