#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_), drawings_(other.drawings_), properties_(other.properties_), guess_types_(other.guess_types_), data_only_(other.data_only_), styles_(other.styles_), alignments_(other.alignments_), borders_(other.borders_), fills_(other.fills_), fonts_(other.fonts_), number_formats_(other.number_formats_), protections_(other.protections_) { } 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_)); drawings_.clear(); std::copy(other.drawings_.begin(), other.drawings_.end(), back_inserter(drawings_)); properties_ = other.properties_; guess_types_ = other.guess_types_; data_only_ = other.data_only_; styles_ = other.styles_; alignments_ = other.alignments_; borders_ = other.borders_; fills_ = other.fills_; fonts_ = other.fonts_; number_formats_ = other.number_formats_; protections_ = other.protections_; return *this; } std::size_t active_sheet_index_; std::vector worksheets_; std::vector relationships_; std::vector drawings_; document_properties properties_; bool guess_types_; bool data_only_; std::vector