我阅读了提案P1040R4 std::embed,并且了解到xxd
和bin2c
之类的工具的实际问题是,它们在实际使用数据时会增加巨大的开销。
这正是std::embed
在处理大文件时试图解决的问题,我的问题是,使用此提议的功能会影响多少编译和链接时间?
答案 0 :(得分:2)
由于没有示例实现,因此无法准确说明。 但是,没有理由比读取文件要慢得多。
作为近似值,您可以使用ld -r -b binary foo.png -o foo.o
并测量链接结果对象的时间。要访问数据,您可以使用符号
extern "C" const char foo_start;
extern "C" const char foo_end;
请注意,foo_start
和foo_end
不是指针,但它们的地址位于数据的开头/结尾处。