Loader::Loader(const std::string& fileName, const Identifier& acceptedIdentifier): fileContents(fileName) { constexpr auto minimalSize = sizeof(Identifier) + sizeof(Node::START) + sizeof(Node::type) + sizeof(Node::END); if (fileContents.size() <= minimalSize) { throw InvalidOTBFormat{}; } Identifier fileIdentifier; std::copy(fileContents.begin(), fileContents.begin() + fileIdentifier.size(), fileIdentifier.begin()); if (fileIdentifier != acceptedIdentifier && fileIdentifier != wildcard) { throw InvalidOTBFormat{}; } }