Fixed OS X build

This commit is contained in:
Daniel Wolf 2016-06-16 09:36:33 +02:00 committed by Daniel Wolf
parent 6c9612d2c3
commit b2f702c8f4
6 changed files with 16 additions and 12 deletions

View File

@ -4,11 +4,11 @@
template<typename T>
class BoundedTimeline : public Timeline<T> {
using Timeline<T>::time_type;
using typename Timeline<T>::time_type;
using Timeline<T>::equals;
public:
using Timeline<T>::iterator;
using typename Timeline<T>::iterator;
using Timeline<T>::end;
explicit BoundedTimeline(TimeRange range) :

View File

@ -7,7 +7,7 @@ class ContinuousTimeline : public BoundedTimeline<T> {
public:
ContinuousTimeline(TimeRange range, T defaultValue) :
BoundedTimeline(range),
BoundedTimeline<T>(range),
defaultValue(defaultValue)
{
// Virtual function call in constructor. Derived constructors shouldn't call this one!
@ -31,7 +31,7 @@ public:
using BoundedTimeline<T>::clear;
void clear(const TimeRange& range) override {
set(Timed<T>(range, defaultValue));
BoundedTimeline<T>::set(Timed<T>(range, defaultValue));
}
private:

View File

@ -1,4 +1,3 @@
#include <boost/bimap.hpp>
#include "Phone.h"
using std::string;

View File

@ -5,15 +5,16 @@ template<typename TCollection>
std::vector<std::pair<typename TCollection::value_type, typename TCollection::value_type>> getPairs(const TCollection& collection) {
using TElement = typename TCollection::value_type;
using TPair = std::pair<TElement, TElement>;
using TIterator = typename TCollection::const_iterator;
auto begin = collection.begin();
auto end = collection.end();
if (begin == end || ++TCollection::const_iterator(begin) == end) {
if (begin == end || ++TIterator(begin) == end) {
return std::vector<TPair>();
}
std::vector<TPair> result;
for (auto first = begin, second = ++TCollection::const_iterator(begin); second != end; ++first, ++second) {
for (auto first = begin, second = ++TIterator(begin); second != end; ++first, ++second) {
result.push_back(TPair(*first, *second));
}
return result;

View File

@ -109,10 +109,13 @@ string toASCII(const u32string& s) {
}
u32string utf8ToUtf32(const string& s) {
// Visual Studio 2015 has a bug regarding char32_t:
// https://connect.microsoft.com/VisualStudio/feedback/details/1403302/unresolved-external-when-using-codecvt-utf8
// Once VS2016 is out, we can use char32_t instead of uint32_t as type arguments and get rid of the outer conversion.
#if defined(_MSC_VER) && _MSC_VER <= 1900
// Workaround for Visual Studio 2015
// See https://connect.microsoft.com/VisualStudio/feedback/details/1403302/unresolved-external-when-using-codecvt-utf8
std::wstring_convert<std::codecvt_utf8<uint32_t>, uint32_t> convert;
return u32string(reinterpret_cast<const char32_t*>(convert.from_bytes(s).c_str()));
#else
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> convert;
return convert.from_bytes(s);
#endif
}

View File

@ -1,5 +1,6 @@
#pragma once
#include <vector>
#include <string>
std::vector<std::string> tokenizeText(const std::u32string& text);