#pragma once #include #include #include #include #include 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 = ""); private: std::unique_ptr p; }; } // namespace awips } // namespace scwx