Fixed OS X build
This commit is contained in:
parent
6c9612d2c3
commit
b2f702c8f4
|
@ -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) :
|
||||
|
|
|
@ -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!
|
||||
|
@ -28,10 +28,10 @@ public:
|
|||
ContinuousTimeline(range, defaultValue, initializerList.begin(), initializerList.end())
|
||||
{}
|
||||
|
||||
using BoundedTimeline<T>::clear;
|
||||
using BoundedTimeline<T>::clear;
|
||||
|
||||
void clear(const TimeRange& range) override {
|
||||
set(Timed<T>(range, defaultValue));
|
||||
BoundedTimeline<T>::set(Timed<T>(range, defaultValue));
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
#include <boost/bimap.hpp>
|
||||
#include "Phone.h"
|
||||
|
||||
using std::string;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
std::vector<std::string> tokenizeText(const std::u32string& text);
|
Loading…
Reference in New Issue