Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > константность __LINE__


Автор: GoldFinch 14.8.2009, 17:54
пытаюсь компилить в MSVC2008 следующий код
Код

template<int X>
struct Foo { static const int value=X; };

int main()
{
    return Foo<__LINE__>::value;
}

получаю ошибку
Код

main.cpp(6) : error C2975: X: недопустимый аргумент шаблона для "Foo", требуется константное выражение времени компиляции
        main.cpp(1): см. объявление 'X'


в тоже время, codepad компилит это нормально (там gcc)
http://codepad.org/0unKgLuw

Автор: ISergeyN 14.8.2009, 18:04
Цитата(GoldFinch @  14.8.2009,  17:54 Найти цитируемый пост)
в тоже время, codepad компилит это нормально (там gcc)http://codepad.org/0unKgLuw

хм.. Intel C++ Compiler  тоже нормально..

Автор: andrew_121 14.8.2009, 18:12
microsoft smile 

Автор: zim22 14.8.2009, 18:24
GoldFinch, http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=375836 ты найдёшь ответ.
***
Properties-C/C++/General/Debug Information Format: Program Database (/Zi)

Автор: GoldFinch 14.8.2009, 18:30
zim22, спасибо.

проблема была в "изменить и продолжить" которое включено в опциях дебага по умолчанию, при этом __LINE__ не константа

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)