"" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2666: 'ATL::CSimpleStringT<TCHAR,false>::operator +': 3 のオーバーロード関数があいまいです。(新しい機能 ; ヘルプを参照)C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE\atlsimpstr.h(643): note: 'ATL::CSimpleStringT<TCHAR,false> ATL::CSimpleStringT<TCHAR,false>::operator +(const ATL::CSimpleStringT<TCHAR,false> &,const ATL::CSimpleStringT<TCHAR,false> &)' [引数依存の照合を使用して検出] の可能性がありますC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE\atlsimpstr.h(654): note: または 'ATL::CSimpleStringT<TCHAR,false> ATL::CSimpleStringT<TCHAR,false>::operator +(const ATL::CSimpleStringT<TCHAR,false> &,const char *)' [引数依存の照合を使用して検出] の可能性がありますC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE\atlsimpstr.h(665): note: または 'ATL::CSimpleStringT<TCHAR,false> ATL::CSimpleStringT<TCHAR,false>::operator +(const char *,const ATL::CSimpleStringT<TCHAR,false> &)' [引数依存の照合を使用して検出] の可能性がありますC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE\cstringt.h(2380): note: または 'ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>>::operator +(const ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> &,const ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> &)' [引数依存の照合を使用して検出] の可能性がありますC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE\cstringt.h(2391): note: または 'ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>>::operator +(const ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> &,const char *)' [引数依存の照合を使用して検出] の可能性がありますC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE\cstringt.h(2402): note: または 'ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>>::operator +(const char *,const ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> &)' [引数依存の照合を使用して検出] の可能性がありますC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE\cstringt.h(2419): note: または 'ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>>::operator +(const ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> &,char)' [引数依存の照合を使用して検出] の可能性がありますC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE\cstringt.h(2431): note: または 'ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>>::operator +(char,const ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> &)' [引数依存の照合を使用して検出] の可能性がありますC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE\cstringt.h(2444): note: または 'ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>>::operator +(const ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> &,wchar_t)' [引数依存の照合を使用して検出] の可能性がありますC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE\cstringt.h(2456): note: または 'ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>>::operator +(wchar_t,const ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char>>> &)' [引数依存の照合を使用して検出] の可能性があります

ソース(バグ有り):

#include <atlstr.h>

int main() 
{
CString str = CString(_T("これはテスト文字列です。"))+
printf(_T("%s"), (LPCTSTR) str); }


原因:


対処:


ソース(修正済み):

#include <atlstr.h>

int main() 
{
CString str = CString(_T("これはテスト文字列です。"));
printf(_T("%s"), (LPCTSTR) str); }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]