Привет всем.
Решаю задачу проверки форматов файлов по сигнатурам.
Для этой цели завел честный C-массив std::string'ов, примерно так:
std::string signatures[] =
{
"\xFF\x34\x35",
"\xFF\x50\x36",
// и т.д., сигнатуры высосаны из пальца.
};
Столкнулся с совершенно глупой проблемой: некоторые сигнатуры содержат символ '\x00', в народе известный как '\0'.
Таким образом, статическая инициализация массива C-строками отпадает.
Понятно, что workaround придумать можно.
Интересует, как решить эту проблему наиболее кошерно.