From 79c2cd6336196615c98e03c4b3aff9855464a58e Mon Sep 17 00:00:00 2001 From: Adam Wardynski <award@.(win7-laptop)> Date: Sat, 13 Nov 2010 21:40:42 +0100 Subject: [PATCH] Looks like there's no conversion between const char* and string::const_iterator on MSVC (actually it sounds safer if you ask me). Anyway, working around that by wrapping const char* around a std::string --- libcorpus2/tagset.cpp | 5 +++++ libcorpus2/tagset.h | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/libcorpus2/tagset.cpp b/libcorpus2/tagset.cpp index 8fbb296..e240721 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 572e5b4..a896d34 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 } /** -- GitLab