C++ Шаблоны Функций

Тема в разделе "C/C++/C#", создана пользователем dimanwv, 30 мар 2012.

  1. dimanwv

    dimanwv New Member

    Регистрация:
    30 мар 2012
    Сообщения:
    4
    Симпатии:
    0
    такой вопрос.
    template <typename T>
    void show(const char *msg,vector<T> vect)
    {
    cout<<msg;
    for(unsigned i=0;i<vect.size();++i)
    cout<<vect<<" ";
    cout<<"\n";
    }
    vector<int> copied(5);
    show<int>("Vector have been sorted :",copied);// здесь в угловых скобках указываем тип.
    ///////////////////////////////////////////////////////////
    template<typename InIter>
    void show_range(const char* msg,InIter start,InIter end)
    {
    InIter itr;
    cout<<msg;
    for(itr=start;itr!=end;++itr)
    cout<<*itr<<" ";
    cout<<endl;
    }
    vector<double> trans_v;
    for(trans_i=0;trans_i<10;++trans_i)
    trans_v.push_back(static_cast<double>(trans_i));
    cout<<"The demonstration \"transform\" algorithm using one vector.\n";
    show_range("The initial content of \"trans_v\" is :\n",trans_v.begin(),trans_v.end());//здесь в не применяем угловые скобки почему?
     
  2. Гость

    В первом случае явно указывается специализация шаблонной функции.
    Для приведенного кода отличий не будет.

    Пример из MSDN:
    Код (C++):
    // function_templates2.cpp
    template<class T> void f(T) {}
    int main(int j) {
    f<char>(j);  // Generate the specialization f(char).
    // If not explicitly specified, f(int) would be deduced.
    }
     
  3. dimanwv

    dimanwv New Member

    Регистрация:
    30 мар 2012
    Сообщения:
    4
    Симпатии:
    0
    Я извиняюсь просто, странно что сработало без явной специализации шаблона во втором случае.
    Почему работает в этих двух случаях?
    show_range<vector<double>::iterator >("The initial content of \"trans_v\" is :\n",trans_v.begin(),trans_v.end());
    то есть работает и так
    show_range("The initial content of \"trans_v\" is :\n",trans_v.begin(),trans_v.end());
    Понял, что для функций не надо указывать спецификацию шаблона.
    Я, не очень четко сформулировал вопрос.
     
Загрузка...
Похожие Темы - C++ Шаблоны Функций
  1. Nadia_IT
    Ответов:
    0
    Просмотров:
    20
  2. kmm96
    Ответов:
    1
    Просмотров:
    24
  3. TriXel_01
    Ответов:
    5
    Просмотров:
    98
  4. acs-nexus
    Ответов:
    0
    Просмотров:
    91
  5. Ramzay
    Ответов:
    3
    Просмотров:
    134

Поделиться этой страницей