diff --git a/libcorpus2/tagset.cpp b/libcorpus2/tagset.cpp index 8fbb29619c2d79235674e4323e5b5c46d46f79fe..e2407212cddf71ce9a6bb71ba589ad92240f493b 100644 --- a/libcorpus2/tagset.cpp +++ b/libcorpus2/tagset.cpp @@ -280,7 +280,12 @@ Tag Tagset::make_tag(idx_t pos_idx, mask_t values, bool allow_extra) const Tag Tagset::make_ign_tag() const { +#ifndef _MSC_VER mask_t ign_pos_mask = get_pos_mask("ign"); +#else //no const char* to std::string::const_iterator conversion + static const std::string ign("ign"); + mask_t ign_pos_mask = get_pos_mask(ign); +#endif assert(ign_pos_mask.any()); return Tag(ign_pos_mask); } diff --git a/libcorpus2/tagset.h b/libcorpus2/tagset.h index 572e5b42b71eaade4cbd718cf2a8d1c7902b069d..a896d3481c53341309ea52bf34a3769b4d25b6b1 100644 --- a/libcorpus2/tagset.h +++ b/libcorpus2/tagset.h @@ -135,7 +135,11 @@ public: */ void parse_tag(const char* c, bool allow_extra, boost::function<void (const Tag&)> sink) const { +#ifndef _MSC_VER parse_tag(std::make_pair(c, c + strlen(c)), allow_extra, sink); +#else // no const char* to std::string::const_iterator conversion + parse_tag(std::string(c), allow_extra, sink); +#endif } /** @@ -174,7 +178,11 @@ public: * version. */ std::vector<Tag> parse_tag(const char* c, bool allow_extra) const { +#ifndef _MSC_VER return parse_tag(std::make_pair(c, c + strlen(c)), allow_extra); +#else // no const char* to std::string::const_iterator conversion + return parse_tag(std::string(c), allow_extra); +#endif } /** @@ -201,8 +209,12 @@ public: * version. */ Tag parse_simple_tag(const char* c, bool allow_extra) const { +#ifndef _MSC_VER return parse_simple_tag(std::make_pair(c, c + strlen(c)), allow_extra); +#else // no const char* to std::string::const_iterator conversion + return parse_simple_tag(std::string(c), allow_extra); +#endif } /**