//# This file is a part of toml++ and is subject to the the terms of the MIT license. //# Copyright (c) Mark Gillard //# See https://github.com/marzer/tomlplusplus/blob/master/LICENSE for the full license text. // SPDX-License-Identifier: MIT #pragma once //# {{ #include "preprocessor.h" #if !TOML_IMPLEMENTATION #error This is an implementation-only header. #endif //# }} #include "node.h" TOML_NAMESPACE_START { TOML_EXTERNAL_LINKAGE node::node(node && other) noexcept // : source_{ std::exchange(other.source_, {}) } {} TOML_EXTERNAL_LINKAGE node::node(const node& /*other*/) noexcept { // does not copy source information - this is not an error // // see https://github.com/marzer/tomlplusplus/issues/49#issuecomment-665089577 } TOML_EXTERNAL_LINKAGE node& node::operator=(const node& /*rhs*/) noexcept { // does not copy source information - this is not an error // // see https://github.com/marzer/tomlplusplus/issues/49#issuecomment-665089577 source_ = {}; return *this; } TOML_EXTERNAL_LINKAGE node& node::operator=(node&& rhs) noexcept { if (&rhs != this) source_ = std::exchange(rhs.source_, {}); return *this; } TOML_EXTERNAL_LINKAGE node::operator node_view() noexcept { return node_view(this); } TOML_EXTERNAL_LINKAGE node::operator node_view() const noexcept { return node_view(this); } } TOML_NAMESPACE_END;