#include <iostream>
#include <memory>
struct A {
std::string_view data;
A(const std::string& a [[clang::lifetimebound]]) : data(a) {}
std::string_view getData() { return data; }
};
std::unique_ptr<A> bar() {
std::string on_stack = "I live on stack";
std::unique_ptr<A> obj = std::make_unique<A>(on_stack);
return obj; // return stack address of locak 'on_stack'
}
int main() {
std::unique_ptr<A> obj = bar();
std::cout << obj->getData();
}
https://godbolt.org/z/ozo5q4Wx1