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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.66
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
#1

Использование нововведений C++0x - C++

04.08.2010, 22:30. Просмотров 4093. Ответов 60
Метки нет (Все метки)

Красиво на самом деле... Вопрос, есть-ли резон использовать так, или новый стандарт стоит использовать в меру?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
template <typename T>
T Sum(T n, T m)
{
    return n+m;
}
 
int main()
{
    auto n=5.483, m=3.323;
    decltype(Sum(n,m)) sum=Sum(n,m);
    std::cout<<sum<<'\n';
    return 0;
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2010, 22:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование нововведений C++0x (C++):

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя. - C++
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между функциями с помощью глобального...

Использование строк.Использование структур - C++
Задачка: Дана строка,состоящая из групп нулей и едениц. Найти и вывести на экран группы с нечетным количеством символов. И еще одна: ...

C/C++ Использование функций, использование break - C++
Здравствуйте. Не знал как назвать тему, боялся что, если назову &quot;КАК ЭТО РАБОТАЕТ?&quot; то её удалят. Пишу программу для вычисления длинных...

Использование расширений формы и иных нововведений в 1С - 1С
Добрый день, уважаемые форумчане. Имеется задача - создать собственное тиражируемое решение на базе типового. И возникает куча вопросов...

Одно из нововведений в .net 4.5 - portable class libraries: что это - .NET
Одно из нововведений в .net 4.5 - portable class libraries. http://msdn.microsoft.com/en-us/library/gg597391(v=vs.110).aspx Кто...

Придумать сложное задание для Java 8 с использованием нововведений языка - Java SE
Знакомый попросил дать какое-нибудь серьезное задание на java 8, чтобы он смог использовать там все нововведения языка (лямбды и т.д.)....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
27.08.2010, 18:28 #31
Цитата Сообщение от Lavroff Посмотреть сообщение
Написал две статьи по бытовому использованию С++0x:
Лямбда-функции
Авто и деклтайп

Может кому будет интересно)
первое:
C++
1
2
    int Arr[] = {1,2,-1,-2,3,-3,4,-4,5,-5}; 
    std::vector<int> Vec(Arr, Arr+sizeof Arr/sizeof(Arr[0]));
это что за батарея?

второе:
C++
1
[&Sum, &Mult, &Sub](int Elem) {Sum+=Elem; Mult*=Elem; Sub-=Elem;}
в этом нет смысла. каптурь все.

Добавлено через 38 минут
Lavroff, ну так что с батареей? не поправишь?
1
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
27.08.2010, 18:32  [ТС] #32
niXman, А в чем батарея не катит? Тут же описание исключительно лямбд, а не инициализации вектора без создания доп. массива
0
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
27.08.2010, 18:43 #33
как-бы дело в том, что этот код, не совсем с++0х. это с++0х + Си
в с++0х контейнеры заполняются при инициализации так:
C++
1
std::vector<int> vec = {1,2,-1,-2,3,-3,4,-4,5,-5};
но это так, к сведению..
1
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
27.08.2010, 18:43  [ТС] #34
niXman, Да я это помнил. Просто вчера компиль начал ругаться на это по какой-то причине и я решил забить.
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
27.08.2010, 18:44 #35
Lavroff, а разве компиляторы уже поддерживают такую инициализацию?
0
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
27.08.2010, 18:50 #36
Nameless One, конечно. еще с ноября
1
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.08.2010, 18:51 #37
Цитата Сообщение от Nameless One Посмотреть сообщение
Lavroff, а разве компиляторы уже поддерживают такую инициализацию?
gcc 4.5 поддерживает, VS2010 ругается.
2
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
27.08.2010, 18:52 #38
fasked, теперь ясно, а то я вроде на msvs пробовал как-то, и не сканало...
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
27.08.2010, 21:32  [ТС] #39
fasked, Вот оно в чем дело. Тогда пробовал именно на VS
0
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
07.12.2010, 23:11 #40
Народ, подскажите пожалуйста

захотел поюзать нововведения C+0x(то что реализовано), на сайте указано что в gcc4.5 лямбда ф-ции и auto-переменные уже реализованы, скачал и установил mingw4.5

в mingw4.5 цифры 4.5 указывают на версию gcc? то есть там компилятор версии gcc4.5?

Далее добавил переменную в окружение C:\MinGW\bin
попробовал скомпилить пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
template <typename T>
T Sum(T n, T m)
{
        return n+m;
}
 
int main()
{
        auto n=5.483, m=3.323;
        decltype(Sum(n,m)) sum=Sum(n,m);
        std::cout<<sum<<'\n';
        return 0;
}
и в ком. строке выбило ошибки мол переменные без типов и т.д

Что я не так сделал? буду рад любой помощи
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
07.12.2010, 23:43 #41
norge_goth, для использования фишек из c++0x при компиляции надо добавлять ключ -std=c++0x
Код
g++ main.cpp -std=c++0x
, чтобы узнать версию gcc
Код
gcc -v
1
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
08.12.2010, 00:13 #42
как-то оно не хочет, вроде и версия 4.4 gcc должна поддерживать авто переменные
Код
C:\Program_Files\Qt_dynamic\files_dynamic\Consol\C++2>gcc -v
Using built-in specs.
Target: mingw32
Configured with: ../gcc-4.4.0/configure --enable-languages=c,ada,c++,fortran,jav
a,objc,obj-c++ --disable-sjlj-exceptions --enable-shared --enable-libgcj --enabl
e-libgomp --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug --enab
le-version-specific-runtime-libs --prefix=/mingw --with-gmp=/mingw/src/gmp/root
--with-mpfr=/mingw/src/mpfr/root --build=mingw32
Thread model: win32
gcc version 4.4.0 (GCC)
а при попытке скомпилировать выше указанный исходник выдает:
Код
C:\Program_Files\Qt_dynamic\files_dynamic\Consol\C++2>g++ auto.cpp -std=c++0x
In file included from c:\program_files\qt\2010.02\mingw\bin\../lib/gcc/mingw32/4
.4.0/include/c++/bits/postypes.h:42,
                 from c:\program_files\qt\2010.02\mingw\bin\../lib/gcc/mingw32/4
.4.0/include/c++/iosfwd:42,
                 from c:\program_files\qt\2010.02\mingw\bin\../lib/gcc/mingw32/4
.4.0/include/c++/ios:39,
                 from c:\program_files\qt\2010.02\mingw\bin\../lib/gcc/mingw32/4
.4.0/include/c++/ostream:40,
                 from c:\program_files\qt\2010.02\mingw\bin\../lib/gcc/mingw32/4
.4.0/include/c++/iostream:40,
                 from auto.cpp:1:
c:\program_files\qt\2010.02\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwcha
r:159: error: '::swprintf' has not been declared
c:\program_files\qt\2010.02\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwcha
r:166: error: '::vswprintf' has not been declared
что эт может быть?
0
easybudda
Модератор
Эксперт CЭксперт С++
9627 / 5575 / 947
Регистрация: 25.07.2009
Сообщений: 10,710
08.12.2010, 00:51 #43
Цитата Сообщение от norge_goth Посмотреть сообщение
вроде и версия 4.4 gcc
4.5 нужна, не меньше
Использование нововведений C++0x
код ваш без изменений
1
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
08.12.2010, 02:07 #44
Цитата Сообщение от easybudda Посмотреть сообщение
код ваш без изменений
спасибо, переустановил, получилось, вот только и при исполнении файла выводит тоже самое, но файл создается, в чем проблема?
0
Миниатюры
Использование нововведений C++0x  
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
08.12.2010, 02:12 #45
Цитата Сообщение от easybudda Посмотреть сообщение
4.5 нужна, не меньше
и еще хотелось бы спросить, а почему версия минимум 4.5?
вроде как тут http://gcc.gnu.org/gcc-4.4/cxx0x_status.html напротив auto-typed variables стоит Yes (то есть реализовано)

2. как можно задать чтобы не вводить каждый раз -enable-auto-import и по возможности -std=c++0x?
Спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2010, 02:12
Привет! Вот еще темы с ответами:

Создание и использование своих @NamedQueries. Использование EntityManager - Java EE
Добрый день! Создавал классы сущностей и сессий через NetBeans генераторы кода. Использование стандартных...

Задачи на использование событий. Осуществить использование событий в программе с применением синтаксиса обработчика, рекомендованного для среды NET Fr - C#
NET Framework. Программа для поиска простых чисел среди чисел Фибоначчи. При нахождении очередного простого числа активировать событие...

Использование конструкторов. Перегрузка конструкторов. Использование свойств - C#
Помогите реализовать свойства, позволяющие осуществить проверку на допустимые значения для данных класса. using System; using...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов - C++
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.12.2010, 02:12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru