내 C++/CLI 코드에는 약 20 개의 클래스가 있습니다. 나는 print
함수를 20 번 오버로드하여 각 클래스의 인스턴스를 처리했습니다. 이제는 20 개 클래스 각각의 객체 배열을 추가로 지원해야하며 서로 거의 중복되지 않는 20 개의 오버로드를 작성해야합니다. 예를 들어, 아래 참조 : 다음과 같은 오류에제네릭 함수에서 배열 <> 사용
void print(int i){
Console::WriteLine("Integer: {0}", i);
}
void print(String ^s){
Console::WriteLine(L"Hello " + s);
}
generic <typename T>
void print(array<T> ^ts){
for(int i = 0, n = ts->Length; i < n; ++i)
print(ts[i]);
}
int main(array<System::String ^> ^args)
{
array<String^> ^s = gcnew array<String^>{ L"apple", L"ball", L"car" };
print(s);
Console::WriteLine(L"Hello World");
return 0;
}
그러나 위의 결과 :
error C2665: 'print' : none of the 2 overloads could convert all the argument types
왜 이런 일이 컴파일하지 않습니다? 내가하려고하는 것에 대한 대안은 무엇입니까?
당신이 그것을 어떻게 전화를 했습니까? –
@ LightnessRacesinOrbit, 호출 기능 (주)을 포함하도록 코드를 업데이트했습니다 –
고마워요. 그것은 매우 중요합니다. –