# std::codecvt<InternT,ExternT,State>::always_noconv, do_always_noconv

< cpp‎ | locale‎ | codecvt

定义于头文件 `<locale>` |  |
| (1) |
public: bool always_noconv() const throw(); |  | (C++11 前)
public: bool always_noconv() const noexcept; |  | (C++11 起)
| (2) |
protected: virtual bool do_always_noconv() const throw(); |  | (C++11 前)
protected: virtual bool do_always_noconv() const noexcept; |  | (C++11 起)

1) 公开成员函数，调用最终导出类的成员函数 `do_always_noconv` 。
2) 若 do_in() 和 do_out() 对于所有合法输入都返回 `std::codecvt_base::noconv` 则返回 true 。

### 返回值

若此转换平面不进行转换则为 true ，否则为 false 。

不转换特化 std::codecvt<char, char, std::mbstate_t> 返回 true 。

### 注意

此函数可用于例如 std::basic_filebuf::underflow 和 std::basic_filebuf::overflow 的实现，以使用大量元素复制取代调用 std::codecvt::in 或 std::codecvt::out ，若已知 std::basic_filebuf 中感染的本地环境不进行任何转换。

### 示例

    #include <locale>
    #include <iostream>

    int main()
    {
        std::cout << "The non-converting char<->char codecvt::always_noconv() returns "
                  << std::boolalpha
                  << std::use_facet<std::codecvt<char, char, std::mbstate_t>>(
                        std::locale()
                     ).always_noconv() << "\n"
                  << "while wchar_t<->char codecvt::always_noconv() returns "
                  << std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>(
                        std::locale()
                     ).always_noconv() << "\n";

    }

输出：

    The non-converting char<->char codecvt::always_noconv() returns true
    while wchar_t<->char codecvt::always_noconv() returns false