|
分類:[C/C++]
環境 OS:Windows 8 開発:Visual Studio 2010
こんにちは。現在学習もかねて以下のような自前のstrcmpを作成しようとしているのですが、なぜか引数をキャストしようとするとstatic_castのところが無効な型変換ですと出てコンパイルが通せません この原因がわかる方、いらっしゃいますでしょうか?
enum CStringOrder { FirstBeforeSecond = -1, Same = 0, SecondBeforeFirst = 1 };
CStringOrder strcmp(char const *first,char const *second) { assert(first && second); unsigned char const *f = static_cast<unsigned char const*>(first); // ここのstatic_castでエラー unsigned char const *s = static_cast<unsigned char const*>(second); // ここのstatic_castでエラー do { if((*f) < (*s)) { return FirstBeforeSecond; } else if((*s) < (*f)) { return SecondBeforeFirst; } } while(*(s++) && *(f++)); assert((*s-1)==0 && (*(f-1)==0)); return Same; }
|