void add_value(int row, int column, double value) { add_value_internal(row, column, value); }
void add_property_impl(TKey&& key, TValue&& value) { add_key_internal(std::forward<TKey>(key)); add_value_internal(std::forward<TValue>(value)); }
void add_property_impl(const index_value_pair idxs) { add_key_internal(idxs.key()); add_value_internal(idxs.value()); }
void add_property_impl(const property& property) { add_key_internal(property.key()); add_value_internal(property.value()); }
void add_value_internal(T&& value) { encoded_property_value v{std::forward<T>(value)}; add_value_internal(m_layer->add_value(v)); }
void add_value_internal(property_value value) { add_value_internal(m_layer->add_value(value)); }