1. ホーム
  2. c++

[解決済み] C++のヘルパー関数とは何ですか?

2022-03-08 01:59:11

質問

Bjarne Stroustrup著「The C++ Programming Language"」から、C++における「ヘルパー関数」とは何かを理解しようとしています。しかし、この本ではヘルパー関数について何も説明されていませんし、授業で使用する目的も説明されていません。そこで、Webで検索してみたところ これ [注:デッドリンク)。ヘルパー関数の本当の目的は何なのか、どんなときに使うべきなのか、ヘルパー関数とは何なのか、などなど、概要はつかめたのですが、まだはっきりしません。

どのように解決するのですか?

ヘルパー関数"。 は、規格にあるような用語ではなく、正確な定義もないのですが、規格では "ヘルパークラス" または "ヘルパーテンプレート" エンドユーザーによってインスタンス化されることを意図していないが、内部的に別のクラスで使用される便利な機能を提供するクラスを参照するために、数回使用します。

ヘルパー関数とは、通常、何度も再利用するような便利な機能をラップした関数のことを指します。ヘルパー関数は、さまざまな種類の目的に使用できるように作成できます。

例えば、マルチバイトエンコーディングの std::stringstd::wstring :

std::wstring s2ws(const std::string& str)
{
    int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), NULL, 0);
    std::wstring wstrTo( size_needed, 0 );
    MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &wstrTo[0], size_needed);
    return wstrTo;
}