テンプレート化したい関数があります。現時点では、 と の 2 つの異なるバージョンがstd::string
ありstd::wstring
ます。
機能(簡素化)はこのようなものです
template <class T, class _Tc>
std::vector<T> TokenizeArgs(const T& in) {
const T tofind = T("\"' ");
.. do stuff ..
}
T
は または のいずれstd::string
かstd::wstring
で_Tc
あり、 または のいずれchar
かwchar_t
です。テンプレート バージョンで動作するように定義した定数文字列を取得する際に問題が発生しています。上記のコードは、配列を取るコンストラクターstd::string
がないため、機能しますが、機能しません。通常、これを修正するには、定数文字列を として宣言しますが、そうすると では機能しません。std::wstring
std::wstring
char*
const T tofind = L"\"' "
std::string
テンプレートの経験があまりないので、この問題を修正する方法がよくわかりません。