-1

私はルート名前空間を使用して次のコード行のメソッドにアクセスするC++プロジェクト (および私は完全な C++ n00b) に取り組ん::tolowerでいますが、いくつかのビルド設定を変更してエラーが発生しています。

CCString * CCBReader::toLowerCase(CCString * pString) {
    std::string copy(pString->getCString());
    std::transform(copy.begin(), copy.end(), copy.begin(), ::tolower);
    return CCString::create(copy.c_str());
}

ビルドの変更はほとんどのプロジェクトにとって不可欠であり、これらを変更することはできません。回避策として、これにルート名前空間のプレフィックスを付けてみます。例えば:

std::transform(copy.begin(), copy.end(), copy.begin(), rootns::tolower);

これは可能ですか?もしそうなら、どのように?

あなたの多くはすでに私の理想的な解決策を不可能だと無視しており、自分のやり方で解決できるかどうかを確認するためにエラーが何であるかを尋ねているので、ここにエラーの関連部分があります:

error: '::tolower' has not been declared
4

1 に答える 1

2

ルート名前空間には名前がないため、これに対処する他の方法はありません。

代わりに、ビルドの変更を再検討する必要があり、発生したエラーが正確に何を示しているかを検討する必要があります。エラーは実際には名前空間に関するものではない可能性があります。コードの前の方にある他の問題によってトリガーされた可能性があります。

于 2012-11-05T15:35:29.137 に答える