# std::isblank(std::locale)

< cpp‎ | locale

定义于头文件 `<locale>` |  |
template< class charT > bool isblank( charT ch, const locale& loc ); |  | (C++11 起)

检查给定字符是否为给定 locale 的 ctype 平面分类为空格字符。

### 参数

ch | - | 字符
loc | - | 本地环境

### 返回值

若字符被分类为空格字符则返回 true ，否则返回 false 。

### 可能的实现

    template< class charT >
    bool isblank( charT ch, const std::locale& loc ) {
        return std::use_facet<std::ctype<charT>>(loc).is(std::ctype_base::blank, ch);
    }

### 示例

演示以不同本地环境使用 isblank() （ OS 限定）

    #include <iostream>
    #include <locale>

    void try_with(wchar_t c, const char* loc)
    {
        std::wcout << "isblank('" << c << "', locale(\"" << loc << "\")) returned " << std::boolalpha
                   << std::isblank(c, std::locale(loc)) << '\n';
    }
    int main()
    {
        const wchar_t IDEO_SPACE = L'\u3000'; // Unicode 字符‘象形字间隔’
        try_with(IDEO_SPACE, "C");
        try_with(IDEO_SPACE, "en_US.UTF-8");
    }

输出：

    isblank(' ', locale("C")) returned false
    isblank(' ', locale("en_US.UTF-8")) returned true

### 参阅

isblank (C++11) | 检查字符是否为空白字符 (函数)
iswblank (C++11) | 检查宽字符是否为空白字符 (函数)