Vs 2012 Ошибка При Передаче Аргумента В Функцию Writeline

  • Автор темы War1ock
  • Дата начала
W

War1ock

#1
Господа, приветствую!

разбираю задачки из книги Айвора Хортона (Visual C++ 2010. Полный курс)

Есть код в Visual C++ 2012:


C++:
#include "stdafx.h"

using namespace System;

enum class Year {January, February, March, April, May, June, July, August, September, October, November, December};

int main(array<System::String ^> ^args)

{

Year Mounth = Year::January;
int value = safe_cast<int>(Mounth);
Console::WriteLine(L"Month № {0}, value = {1}", Mounth, value);

}
Не пойму почему вылетает ошибка

error C2665: 'System::Console::WriteLine' : none of the 19 overloads could convert all the argument types

Я понял, что компилятор хочет сказать, что передаю набор аргументов, который не соответствует принимаемым аргументам из методов Console::WriteLine

Но черт побери, не пойму как задать правильно

Поставил VS 2010, тот же пример скомпилился без проблем.
 
R

rrrFer

#2
наверно в новой версии компилятора подпилили ваш writeline...угу, так часто бывает, тут помочь нечем, остается только развести руками и пойти на msdn искать причину(если очень хочется).

Разрешите немного оффтопа?:
почему учите именно visual C++? (ничего кроме любопытства).
 
W

War1ock

#3
наверно в новой версии компилятора подпилили ваш writeline...угу, так часто бывает, тут помочь нечем, остается только развести руками и пойти на msdn искать причину(если очень хочется).

Разрешите немного оффтопа?:
почему учите именно visual C++? (ничего кроме любопытства).
Судя по

http://msdn.microsoft.com/en-us/library/sy....writeline.aspx

действительно подпилили.

но тем не менее есть WriteLine(Object), при этом код

C++:
#include "stdafx.h"
using namespace System;
enum class Year {January, February, March, April, May, June, July, August, September, October, November, December};

int main(array<System::String ^> ^args)
{
Year Mounth = Year::January;
int value = safe_cast<int>(Mounth);
Console::WriteLine(Mounth); 
}
выдает ту же ошибку

Теперь задался вопросом: как вообще вывести в данном случае имена констант перечисления =)
______
Насчет выбора именно Visual С++:
задался целью освоить написание приложений под windows, а будучи еще в универе использовал VS 2006. Поэтому решил все вспомнить и изучить, используя
инструмент с которым хоть немного знаком. Как оказалось, по прошествии времени VS 2006 и VS 2012 это как небо и земля, но тем не менее решил поэкспериментировать с 2012.
 
R

rrrFer

#4
В VS можно писать на стандартном С++(хоть и соответствие их компилятора стандарту оставляет желать лучшего), использовать CLI и Managed C++ не обязательно.