int nums[5]={8,5,3,7,8};
slist slis;
slis.insert(slis.end(), nums, nums+5);
引数が3つのinsert()の引数の型はそれぞれ下記の通りなので、
insert(std::list::const_iterator _Where, std::list::size_type _Count, const int & _Val)
template
class slist :public std::list{
public:
slist& add(size_type begor, const int endor){
this.insert(this.end(), begor, endor);
}
};
正常にビルドされたのですが、 とすると
------ ビルド開始: プロジェクト: slist, 構成: Debug Win32 ------
コンパイルしています...
main.cpp
c:\documents and settings\administrator\my documents\visual studio 2008\projects\slist\main.cpp(129) : error C2664: 'slist::add' : 1 番目の引数を 'int [5]' から 'unsigned int' に変換できません。(新しい機能 ; ヘルプを参照)
with
[
SLIST=int
]
この変換が可能なコンテキストはありません。
ビルドログは "file://c:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\slist\Debug\BuildLog.htm" に保存されました。
slist - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
slis.insert(slis.end(), nums, nums+5);
のときはうまくいきましたよね。これはどうしてなのでしょうか?