I recently learned that both clang and gcc have added support for N3017 a.k.a #embed from C23 so naturally my first reaction was to see how well it works in C++ code.
Given this code sample:
#include <array>
#include <cstdint>
#include <experimental/array>
#include <iostream>
#include <utility>
int main() {
// works
static constexpr char c_char_array[] = {
#embed __FILE__
, '\0'
};
static constexpr unsigned char c_unsigned_char_array[] = {
#embed __FILE__
, '\0'
};
static constexpr std::uint8_t c_uint8_array[] =