char16_t_length.pass.cpp revision bc8d3f97eb5c958007f2713238472e0c1c8fe02c
15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project//===----------------------------------------------------------------------===// 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project// 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project// ��������������������The LLVM Compiler Infrastructure 45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project// 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project// This file is distributed under the University of Illinois Open Source 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project// License. See LICENSE.TXT for details. 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project// 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project//===----------------------------------------------------------------------===// 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project// <locale> 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project// template <> class codecvt<char16_t, char, mbstate_t> 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project// int length(stateT& state, const externT* from, const externT* from_end, size_t max) const; 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <locale> 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <cassert> 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef std::codecvt<char16_t, char, std::mbstate_t> F; 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectint main() 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project std::locale l = std::locale::classic(); 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project const F& f = std::use_facet<F>(l); 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project std::mbstate_t mbs; 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project const char from[] = "some text"; 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project assert(f.length(mbs, from, from+10, 0) == 0); 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project assert(f.length(mbs, from, from+10, 8) == 8); 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project assert(f.length(mbs, from, from+10, 9) == 9); 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project assert(f.length(mbs, from, from+10, 10) == 10); 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project assert(f.length(mbs, from, from+10, 100) == 10); 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project