Browse Source

Add inline declarations to non-template functions in cpp11.h

Fix for issue #31
master
Nemanja Trifunovic 5 years ago
parent
commit
04d29d92ae
  1. 20
      source/utf8/cpp11.h
  2. 2
      tests/test_checked_api.cpp
  3. 2
      tests/test_checked_iterator.cpp

20
source/utf8/cpp11.h

@ -34,65 +34,65 @@ DEALINGS IN THE SOFTWARE.
namespace utf8 namespace utf8
{ {
void append(char32_t cp, std::string& s) inline void append(char32_t cp, std::string& s)
{ {
append(uint32_t(cp), std::back_inserter(s)); append(uint32_t(cp), std::back_inserter(s));
} }
std::string utf16to8(const std::u16string& s) inline std::string utf16to8(const std::u16string& s)
{ {
std::string result; std::string result;
utf16to8(s.begin(), s.end(), std::back_inserter(result)); utf16to8(s.begin(), s.end(), std::back_inserter(result));
return result; return result;
} }
std::u16string utf8to16(const std::string& s) inline std::u16string utf8to16(const std::string& s)
{ {
std::u16string result; std::u16string result;
utf8to16(s.begin(), s.end(), std::back_inserter(result)); utf8to16(s.begin(), s.end(), std::back_inserter(result));
return result; return result;
} }
std::string utf32to8(const std::u32string& s) inline std::string utf32to8(const std::u32string& s)
{ {
std::string result; std::string result;
utf32to8(s.begin(), s.end(), std::back_inserter(result)); utf32to8(s.begin(), s.end(), std::back_inserter(result));
return result; return result;
} }
std::u32string utf8to32(const std::string& s) inline std::u32string utf8to32(const std::string& s)
{ {
std::u32string result; std::u32string result;
utf8to32(s.begin(), s.end(), std::back_inserter(result)); utf8to32(s.begin(), s.end(), std::back_inserter(result));
return result; return result;
} }
std::size_t find_invalid(const std::string& s) inline std::size_t find_invalid(const std::string& s)
{ {
std::string::const_iterator invalid = find_invalid(s.begin(), s.end()); std::string::const_iterator invalid = find_invalid(s.begin(), s.end());
return (invalid == s.end()) ? std::string::npos : (invalid - s.begin()); return (invalid == s.end()) ? std::string::npos : (invalid - s.begin());
} }
bool is_valid(const std::string& s) inline bool is_valid(const std::string& s)
{ {
return is_valid(s.begin(), s.end()); return is_valid(s.begin(), s.end());
} }
std::string replace_invalid(const std::string& s, char32_t replacement) inline std::string replace_invalid(const std::string& s, char32_t replacement)
{ {
std::string result; std::string result;
replace_invalid(s.begin(), s.end(), std::back_inserter(result), replacement); replace_invalid(s.begin(), s.end(), std::back_inserter(result), replacement);
return result; return result;
} }
std::string replace_invalid(const std::string& s) inline std::string replace_invalid(const std::string& s)
{ {
std::string result; std::string result;
replace_invalid(s.begin(), s.end(), std::back_inserter(result)); replace_invalid(s.begin(), s.end(), std::back_inserter(result));
return result; return result;
} }
bool starts_with_bom(const std::string& s) inline bool starts_with_bom(const std::string& s)
{ {
return starts_with_bom(s.begin(), s.end()); return starts_with_bom(s.begin(), s.end());
} }

2
tests/test_checked_api.cpp

@ -1,5 +1,5 @@
#include "gtest/gtest.h" #include "gtest/gtest.h"
#include "utf8/checked.h" #include "utf8.h"
#include <string> #include <string>
#include <vector> #include <vector>

2
tests/test_checked_iterator.cpp

@ -1,5 +1,5 @@
#include "gtest/gtest.h" #include "gtest/gtest.h"
#include "utf8/checked.h" #include "utf8.h"
using namespace utf8; using namespace utf8;

Loading…
Cancel
Save