13257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant// -*- C++ -*-
20ce02245a96edc9d1b2d60653fc06e9941e6fd2aHoward Hinnant//===----------------------------------------------------------------------===//
33257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant//
43257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant//                     The LLVM Compiler Infrastructure
53257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant//
6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
7b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
83257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant//
93257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant//===----------------------------------------------------------------------===//
103257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant
113257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant// <regex>
123257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant
133257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant// template <class charT> struct regex_traits;
143257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant
153257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant// charT translate(charT c) const;
163257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant
173257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant#include <regex>
183257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant#include <cassert>
193257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant
203257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnantint main()
213257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant{
223257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant    {
233257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant        std::regex_traits<char> t;
243257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant        assert(t.translate('a') == 'a');
253257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant        assert(t.translate('B') == 'B');
263257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant        assert(t.translate('c') == 'c');
273257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant    }
283257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant    {
293257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant        std::regex_traits<wchar_t> t;
303257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant        assert(t.translate(L'a') == L'a');
313257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant        assert(t.translate(L'B') == L'B');
323257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant        assert(t.translate(L'c') == L'c');
333257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant    }
343257c9853f0612761bbde4adfd56dce566d9f2a6Howard Hinnant}
35