Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Шаблоны и старый компилятор 
:(
    Опции темы
pycha
Дата 20.6.2008, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Драсте, вродебы найболее подходящая  тема для моего вопроса. Я самостоятельно учу с++. Как раз сейчас дашол к шаблонам функций. Прога переписана с книги но у меня компилятор выдаёт ошибки. Я не пойму что не так . Компилятор вродебы не старый визуал студио 6.
Вобщем может надоумите. Код проги:

Код

#include <iostream>
using namespace std;
template <class ani>
void swap(ani &a, ani &b);
template <class any>
void swap(any *a, any *b, int n);
void show(int a[]);
const int lim = 8;

int main()
{
    int i=10, j=20;
    cout << "i, j = "<< i<< ", " <<j <<endl;
    cout << "using compiler-generated int swapper:\n";
    swap(i, j);// error C2667: 'swap' : none of 2 overload have a best conversion
//error C2668: 'swap' : ambiguous call to overloaded function
    cout<<"now i, j = "<< i << ", "<< j <<endl;
    int d1[lim] = {0,2,4,6,8,10,12,14};
    int d2[lim] = {15,13,11,9,7,5,3,1};
    cout << "original arrags:\n";
    show(d1);
    show(d2);
    swap(d1,d2, lim);
    cout << "swapped arrags: \n";
    show(d1);
    show(d2);
    return 0;
}

template<class any>
void swap(any &a, any&b)
{
    any temp;
    temp = a;
    a = b;
    b=temp;
}

template<class any>
void swap(any a[], any b[], int n)
{
    any temp;
    for (int i=0; i<n;i++)
    {
        temp = a[i];
        a[i] = b[i];
        b[i] = temp;
    }
}

void show (int a[])
{
    cout<< a[0]<< a[1]<<"/"; 
    cout<< a[2]<< a[3]<<"/";
    for(int i=4; i<lim; i++)
        cout << a[i];
    cout << endl;
}


M
JackYF
Пользуемся кнопкой "код".


Это сообщение отредактировал(а) JackYF - 20.6.2008, 15:29
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
mes
Дата 20.6.2008, 12:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(pycha @  20.6.2008,  11:54 Найти цитируемый пост)
);// error C2667: 'swap' : none of 2 overload have a best conversion
//error C2668: 'swap' : ambiguous call to overloaded function


компилятор не может определить более подходяшую функцию из перегруженных по типам передаваемых параметров.
скорей всего сбивает его  функция std::swap, которая благодаря using namespace оказалось в глобальном пространстве имен.
попробуй либо переменовать свою функцию swap
либо убери "using namespace std " (что более предпочтительно) и добавь префикс std:: для cout и endl


--------------------
PM MAIL WWW   Вверх
Lazin
Дата 20.6.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



pycha, один вопрос - одна тема.
PM MAIL Skype GTalk   Вверх
bsa
Дата 20.6.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(pycha @ 20.6.2008,  11:54)
Компилятор вродебы не старый визуал студио 6.

именно что старый. Скачай Visual C++ Express Edition и пользуйся.
PM   Вверх
pycha
Дата 20.6.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



mes Спасибо помогло! Lazin я просто подумал что лудше не создавать тему - клона. Если мог бы скачать - скачал бы. Я в инете с моб тел. есть всеголиш по 100 мб на месяц.

Это сообщение отредактировал(а) pycha - 20.6.2008, 15:53
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
bsa
Дата 20.6.2008, 17:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



https://shipit.ubuntu.com/ это Linux, пришлют бесплатно, компилятор в комплекте.
PM   Вверх
pycha
Дата 20.6.2008, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Вродебы все сделал правильно, заказал . Вот я подумал что есть возможность скачать на другом компе. Но там же скачивается загрузчик а он (если я правильно понимаю) скачивает инсталятор и сразу же устанавливает. Вообщем  если скачаю на другом компе будет ли возможность перенести файлы инсталяции на мой комп. (понимаю тупой вопрос, но не спросиш - не узнаеш) smile 
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
bsa
Дата 20.6.2008, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(pycha @ 20.6.2008,  18:36)
Но там же скачивается загрузчик а он (если я правильно понимаю) скачивает инсталятор и сразу же устанавливает. Вообщем  если скачаю на другом компе будет ли возможность перенести файлы инсталяции на мой комп. (понимаю тупой вопрос, но не спросиш - не узнаеш) smile

http://www.microsoft.com/express/download/offline.aspx

Как вариант, можно другую среду разработки взять: Code::Blocks (бери вариант с mingw), Eclipse + mingw, есть еще варианты, но рекомендую Code::Blocks, как наиболее простой в настройке.

Это сообщение отредактировал(а) bsa - 20.6.2008, 20:47
PM   Вверх
pycha
Дата 22.6.2008, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Все ! Скачал  Visual  Express Edition по офлайновской ссылке. Вау!!! никакого сравнения  smile . Спасибо всем кто помог
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
pycha
Дата 22.6.2008, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Есть одна заковырка.
Я не могу понять как правильно скомпилировать прогу. Например есть код
Код
#include <iostream>
using namespace std;
template<typename t>
t max5(t mas[], int z=5);
 
int main()
{
    int mas1[5] = {1, 2,3, 4,5};
    double mas2[5] = {2.3, 4.5, 6.7,8.9, 1.0};
    int x = max5(mas1);
    double y = max5(mas2);
    cout << "naibolchee znachenie int i double\n"
        << x <<"\t"<<y<< endl;
    return 0;
}

template<typename t>
t max5(t mas[], int z)
{
    double x=0;
    for (int i=0; i<z;i++)
     if (x<mas[i])
        x=mas[i];
    return x;
}




На старом компиляторе компилил нормально, а сейчас на этом не знаю что надо выбрать. Беру win32 console aplikation , а там выдает вот такую хреньКод

Код


#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}





и если вставляю вышеизложеный код, то выдаёт ошибки.
Обясни пожалуйста как надо правильно компилить прогу.

Вот ошибки
g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\qwer\qwer\qwer.cpp(1) : warning C4627: '#include <iostream>': skipped when looking for precompiled header use
        Add directive to 'stdafx.h' or rebuild precompiled header
g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\qwer\qwer\qwer.cpp(26) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
Build log was saved at "file://g:\Documents and Settings\pycha.PYCHA-1366613\Мои документы\Visual Studio 2008\Projects\qwer\qwer\Debug\BuildLog.htm"
qwer - 1 error(s), 1 warning(s)

p.s вчера в гугле около 3х часов провел - все на смарку smile 
Разжуйте дураку.

Это сообщение отредактировал(а) pycha - 22.6.2008, 23:42
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
mes
Дата 22.6.2008, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(pycha @  22.6.2008,  23:41 Найти цитируемый пост)
C4627: '#include <iostream>': skipped when looking for precompiled header use

 тут компилятор говорит что пропустил строчку '#include <iostream> так как используется предкомпиляционный хидер

Цитата(pycha @  22.6.2008,  23:41 Найти цитируемый пост)
fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?

а  тут говорит не забыли ли вы добавить stdafx.h ?

stdafx.h - это автоматически генерируемый файл у студии в котором собрана вся предкомпиляционная инфо.


--------------------
PM MAIL WWW   Вверх
pycha
Дата 23.6.2008, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Все я понял! Надо было поставить 
Код

#include "stdafx.h"


перед #include <iostream>. Вставил заработало
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0595 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.