Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

constexpr static functions - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Копирование массива char в буфер обмена компьютера http://www.cyberforum.ru/cpp-beginners/thread624997.html
Здравствуйте. Нужно, чтобы программа могла скопировать какой-либо массив char или string в буфер обмена компьютера и уже после завершения пользователь мог вставить текст в любой другой программе. В...
C++ Не печатается символ "\" В программе вывожу символы на консоль. Но символ "\" не печатается. Почему ? http://www.cyberforum.ru/cpp-beginners/thread624981.html
Пробелы в файле C++
Здравствуйте. У меня есть текстовый файл. И мне нужно с него до конца считывать по одному символу. #include <fstream> void main() { char c; std::ifstream in("input.txt"); std::ofstream...
C++ Обработка ошибок неправильного заполнения структуры tm?
Это простой вопрос. Допустим такой код: void main(){ int day=31, mon=5,year=82; time_t seconds = time(NULL); tm* timeinfo = localtime(&seconds); cout<<seconds<<endl; timeinfo->tm_mday=day;...
C++ Строка: заменить первую "о" на "а", удалив остальные "о" http://www.cyberforum.ru/cpp-beginners/thread624951.html
c++ visual Задание: дана последовательность слов. напечатать все слова, предварительно выполнив преобразования их по правилу: заменить в каждом слове первую встречную "а" на "о", удалив все...
C++ UTF-8 - русские символы в char посимвольно Здравствуйте, в проекте используется UTF-8, и в char и в string я не могу обратиться к русскому символу, как к элементу массива, т.к. в UTF-8 русский символ занимает сразу два элемента массива... А... подробнее

Показать сообщение отдельно
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016

constexpr static functions - C++

17.07.2012, 16:43. Просмотров 868. Ответов 5
Метки (Все метки)

Почему нижеприведенный код не работает на gcc 4.7.1.? собственно как и на clang

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
class C1 
{
public:
    static constexpr int foo(int x)
    { 
        return x + 1;
    }
    
    static constexpr int bar = foo(sizeof(int));
};
 
int main()
{
    std::cout << C1::bar << std::endl;
    return 0;
}
http://liveworkspace.org/code/326d12...4bf7b64fefedd2
но такое работает на clang
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
class C1 
{
public:
    static constexpr int foo(int x)
    { 
        return x + 1;
    }
    
    static constexpr int bar;
};
 
constexpr int C1::bar = C1::foo(sizeof(int));
 
int main()
{
    std::cout << C1::bar << std::endl;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru