cxx/test/re/re.traits/transform_primary.pass.cpp
Howard Hinnant bbd8086ee3 Fixing whitespace problems
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@111763 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-22 00:45:01 +00:00

48 lines
1.5 KiB
C++

// -*- C++ -*-
//===-------------------------- algorithm ---------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <regex>
// template <class charT> struct regex_traits;
// template <class ForwardIterator>
// string_type
// transform_primary(ForwardIterator first, ForwardIterator last) const;
#include <regex>
#include <cassert>
#include "iterators.h"
int main()
{
{
std::regex_traits<char> t;
const char A[] = "A";
const char Aacute[] = "\xC1";
typedef forward_iterator<const char*> F;
assert(t.transform_primary(F(A), F(A+1)) !=
t.transform_primary(F(Aacute), F(Aacute+1)));
t.imbue(std::locale("cs_CZ.ISO8859-2"));
assert(t.transform_primary(F(A), F(A+1)) ==
t.transform_primary(F(Aacute), F(Aacute+1)));
}
{
std::regex_traits<wchar_t> t;
const wchar_t A[] = L"A";
const wchar_t Aacute[] = L"\xC1";
typedef forward_iterator<const wchar_t*> F;
assert(t.transform_primary(F(A), F(A+1)) !=
t.transform_primary(F(Aacute), F(Aacute+1)));
t.imbue(std::locale("cs_CZ.ISO8859-2"));
assert(t.transform_primary(F(A), F(A+1)) ==
t.transform_primary(F(Aacute), F(Aacute+1)));
}
}