##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::codecvt::always_noconv, do_always_noconv

From cppreference.com
< cpp‎ | locale‎ | codecvt

Defined in header `<locale>` |  |
public: bool always_noconv() const; | (1) |
protected: bool do_always_noconv() const; | (2) |

1) Public member function, calls the member function `do_always_noconv` of the most derived class.
2) Returns true if both do_in() and do_out() return `std::codecvt_base::noconv` for all valid inputs.

### [edit] Return value

true if this conversion facet performs no conversions, false otherwise.

The non-converting specialization std::codecvt<char, char, std::mbstate_t> returns true

### [edit] Notes

This function may be used e.g. in the implementation of std::basic_filebuf::underflow to use bulk character copy instead of calling std::codecvt::in if it is known that the locale imbued in the std::basic_filebuf does not perform any conversions.

### [edit] Exceptions

(none) | (until C++11)
`noexcept` specification: noexcept | (since C++11)

### [edit] Example

Run this code

    #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";

    }

Output:

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

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/locale/codecvt/always_noconv&oldid=64838"