Fixed relative lambda names in MSVC

This commit is contained in:
Bartek Kryza
2023-01-22 15:49:12 +01:00
parent e0a42be63a
commit b802eaee3d
6 changed files with 58 additions and 14 deletions

View File

@@ -255,6 +255,13 @@ YAML::Emitter &operator<<(YAML::Emitter &out, const package_diagram &c);
YAML::Emitter &operator<<(YAML::Emitter &out, const layout_hint &c);
#ifdef _MSC_VER
YAML::Emitter &operator<<(YAML::Emitter &out, const std::filesystem::path &p);
YAML::Emitter &operator<<(
YAML::Emitter &out, const std::vector<std::filesystem::path> &p);
#endif
YAML::Emitter &operator<<(YAML::Emitter &out, const source_location &sc);
template <typename T>
@@ -262,7 +269,10 @@ YAML::Emitter &operator<<(YAML::Emitter &out, const option<T> &o)
{
if (o.has_value) {
out << YAML::Key << o.name;
out << YAML::Value << o.value;
if constexpr (std::is_same_v<T, std::filesystem::path>)
out << YAML::Value << o.value.string();
else
out << YAML::Value << o.value;
}
return out;
}

View File

@@ -138,6 +138,24 @@ YAML::Emitter &operator<<(YAML::Emitter &out, const comment_parser_t &cp)
return out;
}
#ifdef _MSC_VER
YAML::Emitter &operator<<(YAML::Emitter &out, const std::filesystem::path &p)
{
out << p.string();
return out;
}
YAML::Emitter &operator<<(
YAML::Emitter &out, const std::vector<std::filesystem::path> &paths)
{
out << YAML::BeginSeq;
for (const auto &p : paths)
out << p;
out << YAML::EndSeq;
return out;
}
#endif
YAML::Emitter &operator<<(YAML::Emitter &out, const layout_hint &c)
{
out << YAML::BeginMap;