#pragma once #include #include namespace xlnt { namespace detail { struct workbook_impl { workbook_impl(); workbook_impl(const workbook_impl &other) : active_sheet_index_(other.active_sheet_index_), worksheets_(other.worksheets_), relationships_(other.relationships_), root_relationships_(other.root_relationships_), drawings_(other.drawings_), shared_strings_(other.shared_strings_), properties_(other.properties_), guess_types_(other.guess_types_), data_only_(other.data_only_), styles_(other.styles_), colors_(other.colors_), borders_(other.borders_), fills_(other.fills_), fonts_(other.fonts_), number_formats_(other.number_formats_), manifest_(other.manifest_) { } workbook_impl &operator=(const workbook_impl &other) { active_sheet_index_ = other.active_sheet_index_; worksheets_.clear(); std::copy(other.worksheets_.begin(), other.worksheets_.end(), back_inserter(worksheets_)); relationships_.clear(); std::copy(other.relationships_.begin(), other.relationships_.end(), std::back_inserter(relationships_)); root_relationships_.clear(); std::copy(other.root_relationships_.begin(), other.root_relationships_.end(), std::back_inserter(root_relationships_)); drawings_.clear(); std::copy(other.drawings_.begin(), other.drawings_.end(), back_inserter(drawings_)); shared_strings_.clear(); std::copy(other.shared_strings_.begin(), other.shared_strings_.end(), std::back_inserter(shared_strings_)); properties_ = other.properties_; guess_types_ = other.guess_types_; data_only_ = other.data_only_; styles_ = other.styles_; borders_ = other.borders_; fills_ = other.fills_; fonts_ = other.fonts_; number_formats_ = other.number_formats_; colors_ = other.colors_; manifest_ = other.manifest_; return *this; } std::size_t active_sheet_index_; std::vector worksheets_; std::vector relationships_; std::vector root_relationships_; std::vector drawings_; std::vector shared_strings_; document_properties properties_; bool guess_types_; bool data_only_; std::vector