I ended up just copying in like 50 different files into godbolt
given this code:<code>PoseStamped test() {<br> const auto stamp = builtin_interfaces::build<Time>()<br> .sec(1337)<br> .nanosec(1234);<br><br><br> const auto header = std_msgs::build<Header>()<br> .stamp(stamp)<br> .frame_id("test");<br><br> const auto pose = geometry_msgs::build<Pose>()<br> .position(geometry_msgs::build<Point>().x(1).y(2).z(3))<br> .orientation(geometry_msgs::build<Quaternion>().x(1).y(2).z(3).w(4));<br><br> const auto pose_stamped = geometry_msgs::build<PoseStamped>()<br> .header(header)<br> .pose(pose);<br><br> return pose_stamped;<br>}<br></code>
it seems gcc optimizes it to smth decent, but clang struggles a lot more?
interestingly, using -std=c++17 seems to produce better machine code than -std=c++23?? (significantly fewer instructions. I have not benchmarked it)
https://godbolt.org/z/8G5z9fPs7