#pragma once #include #include #include #include #include #if defined(__clang__) # pragma clang diagnostic push # pragma clang diagnostic ignored "-Wunused-parameter" #endif #include #include #if defined(__clang__) # pragma clang diagnostic pop #endif namespace scwx { namespace awips { class CodedLocationImpl; class CodedLocation { public: typedef boost::any_range StringRange; explicit CodedLocation(); ~CodedLocation(); CodedLocation(const CodedLocation&) = delete; CodedLocation& operator=(const CodedLocation&) = delete; CodedLocation(CodedLocation&&) noexcept; CodedLocation& operator=(CodedLocation&&) noexcept; std::vector coordinates() const; bool Parse(const StringRange& lines, const std::string& wfo = {}); static std::optional Create(const StringRange& lines, const std::string& wfo = {}); private: std::unique_ptr p; }; } // namespace awips } // namespace scwx