업데이트 3에서 AreEqual 형식 메시지 :어설 :: 한 줄
This page는 세 줄에서 작업을 수행하는 방법을 나에게 보여줍니다. 누구나 한 줄로 어떻게 처리 할 수 있는지 알고 있습니까?
for (int i = 0; i < 5; i++) {
my_value_to_verify = get_my_values(i);
wchar_t message[200]; // Line 1
_swprintf(message, L"Value %d failed", i); // Line 2
Assert::AreEqual(42, my_value_to_verify, message); // Line 3
}
업데이트 2
으로 내가 언급했던 문서는 C++/CLI에 대한 사실이었다 @JaredPar에 의해 지적했다. 추가 검색 후 the following link에는 내가 작업중인 기능에 대한 참조가 포함되어있는 것 같습니다.
Error: no instance of overloaded function ...AreEqual matches the argument list (int, int, const wchar_t[16], int)
원래의 게시물을
내가 만들려고 Microsoft documentation 사용 : {난}에서 괄호도 여전히 컴파일 오류가 발생 제거
업데이트 1
형식화 된 메시지를 인쇄하는 Assert 문 예를 들면 다음과 같습니다.
for (int i = 0; i < 5; i++) {
my_value_to_verify = get_my_values(i);
Assert::AreEqual(42, my_value_to_verify, L"Value %d failed", {i});
}
가능한 경우, assert 문에서 i 값을 인쇄하려고합니다. 마지막 매개 변수 "{i}"는 배열로되어 있습니다. 설명서의 내용을 따르려고합니다. 그러나 이렇게하면 컴파일 오류가 발생합니다.
(231): error C2143: syntax error : missing ')' before '{'
(231): error C2059: syntax error : ')'
(231): error C2143: syntax error : missing ';' before '{'
(231): error C2143: syntax error : missing ';' before '}'
메시지 서식을 지정하는 방법으로 배열을 선언하는 방법이 잘못되었습니다. 이 배열을 내 경우에 어떻게 선언해야합니까? Assert 선언문에서 처리 할 수 있습니까?
컴파일러는 그 중 하나를 좋아하지 않습니다. "오류 : 오버로드 된 함수의 인스턴스가 없습니다 ... 인수 목록과 일치합니다 ...". – dtmland
@dtmland는 C++ 또는 C++/CLI를 사용하고 있습니다. 당신의 샘플 코드에서 알기가 어렵다 – JaredPar
현재 C++ – dtmland