私のプロジェクトの1つでは、このコードは問題なくコンパイルされます。C++エラーを与える単純なコードC4430とC2143
しかし、別のプロジェクトでは、同じファイルを使用しているため、コンパイルされません。私はVS2012を使用しており、C/C++のプロパティは2つのプロジェクト間で同じです。私はここで検索しましたが、何も見つかりませんでした。どんな助けもありがとう!
ヘッダファイル:
#include <vector>
extern void split(const wstring &s, WCHAR c, vector<wstring>& v);
C++ファイル:
void split(const wstring& s, WCHAR c, vector<wstring>& v)
{
string::size_type i = 0;
string::size_type j = s.find(c);
while (j != string::npos) {
v.push_back(s.substr(i, j-i));
i = ++j;
j = s.find(c, j);
if (j == string::npos)
v.push_back(s.substr(i, s.length()));
}
}
これは私が関数を呼び出す方法です。ここで
wstring csToken;
vector<wstring> vProductVersion;
TCHAR *sProductVersion = tcalloc(64);
StringCchCopy(sProductVersion,64,L"3.3.422");
// Put the string into a vector array.
csToken.assign(sProductVersion);
split(csToken, '.', vProductVersion);
は、コンパイラが生成するエラーです:
1>c:\\projects\\functions.h(5): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\\projects\\functions.h(5): error C2143: syntax error : missing ',' before '&'
明らかに_something_は異なっており、それがここから来ていることがわかります! –