error:ptr_fun(<unknown type>)
От:
Аноним
Дата: 03.10.05 17:32
Оценка:
inline bool is_num(const string & s)
{
return find_if(
s.begin(),
s.end(),
not1(ptr_fun(isdigit))
) == s.end();
}
Ошибка такая:
[code]
In function `bool is_num(const std::string&)':
error: no matching function for call to `ptr_fun(<unknown type>)`
Как можно исправить?
Re: error:ptr_fun(<unknown type>)
#include <functional>
#include <algorithm>
#include <cctype>
inline bool is_num(std::string const &s)
{
return std::find_if(
s.begin(),
s.end(),
std::not1(std::ptr_fun(std::isdigit))
) == s.end();
}
int main()
{
return is_num("121212" );
}
VC 7.1: без ошибок
Re[2]: error:ptr_fun(<unknown type>)
От:
Аноним
Дата: 03.10.05 19:31
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:
Спасибо за ответ
АШ>VC 7.1: без ошибок
Ваш вариант в gcc тоже работает. Но мне нужно юзать <iostream>
А так что скажет VC:
#include <functional>
#include <algorithm>
#include <string>
#include <cctype>
#include <iostream>
using namespace std;
inline bool is_num(std::string const &s)
{
return find_if(
s.begin(),
s.end(),
not1(ptr_fun(isdigit))
) == s.end();
}
int main(){
return is_num("121212" );
}
Re[3]: error:ptr_fun(<unknown type>)
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Анатолий Широков, Вы писали:
А>Спасибо за ответ
АШ>>VC 7.1: без ошибок
А>Ваш вариант в gcc тоже работает. Но мне нужно юзать <iostream>
А как это может повлиять на компилируемой предложенного варианта? Разуется, компилируется.
Re[4]: error:ptr_fun(<unknown type>)
От:
Аноним
Дата: 03.10.05 19:41
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:
АШ>А как это может повлиять на компилируемой предложенного варианта? Разуется, компилируется.
А у меня так. Комментирую строку
//#include <iostream>
компилируется.
Разкоментирую
#include <iostream>
ошибка компилятора (gcc version 3.3.5 (Debian 1:3.3.5-13)):
# c++ num.cc
In function `bool is_num(const std::string&)':
error: no matching function for call to `ptr_fun(<unknown type>)'
Re[5]: error:ptr_fun(<unknown type>)
Хорошо, для начала откажемся от using namespace std. Что скажет gcc на это?
#include <functional>
#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
inline bool is_num(std::string const &s)
{
return std::find_if(
s.begin(),
s.end(),
std::not1(std::ptr_fun(std::isdigit))
) == s.end();
}
int main()
{
std::cout << is_num("121212" );
return 0;
}
Re[6]: error:ptr_fun(<unknown type>)
От:
Аноним
Дата: 03.10.05 19:57
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:
АШ>Хорошо, для начала откажемся от using namespace std. Что скажет gcc на это?
АШ>АШ>#include <functional>
АШ>#include <algorithm>
АШ>#include <cctype>
АШ>#include <iostream>
АШ>#include <string>
АШ>inline bool is_num(std::string const &s)
АШ>{
АШ> return std::find_if(
АШ> s.begin(),
АШ> s.end(),
АШ> std::not1(std::ptr_fun(std::isdigit))
АШ> ) == s.end();
АШ>}
АШ>int main()
АШ>{
АШ> std::cout << is_num("121212" );
АШ> return 0;
АШ>}
АШ>
Скопировал код в num1.cc. Ругается:
$ c++ num1.cc
num1.cc: In function `bool is_num(const std::string&)':
num1.cc:13: error: no matching function for call to `ptr_fun(<unknown type>)'
Re[6]: error:ptr_fun(<unknown type>)
От:
Аноним
Дата: 03.10.05 20:02
Оценка:
В принципе победный код есть, но какой — то он не последовательный:
#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
#include <stdio.h>
inline bool is_num(std::string const &s)
{
return std::find_if(
s.begin(),
s.end(),
std::not1(std::ptr_fun(isdigit))
) == s.end();
}
int main()
{
std::cout << is_num("121212" );
return 0;
}
Да и хотелось бы понять где в пред/ примере я неправильно использовал stl.
Re: error:ptr_fun(<unknown type>)
От:
MaximE
Дата: 04.10.05 06:51
Оценка:
On Mon, 03 Oct 2005 21:32:57 +0400, wrote:
> > inline bool is_num(const string & s)
> {
> return find_if(
> s.begin(),
> s.end(),
> not1(ptr_fun(isdigit))
> ) == s.end();
> }
>
>
> Ошибка такая:
> [code]
> In function `bool is_num(const std::string&)':
> error: no matching function for call to `ptr_fun(<unknown type>)`
>
> Как можно исправить?
Попробуй добавить амперсанд перед isdigit: &isdigit. И хедер functional...
--
Maxim Yegorushkin Posted via RSDN NNTP Server 1.9
Re[2]: error:ptr_fun(<unknown type>)
От:
Аноним
Дата: 04.10.05 20:23
Оценка:
Вот так сработало:
inline bool is_num(std::string const &s)
{
return find_if(
s.begin(),
s.end(),
not1(ptr_fun(::isdigit))
) == s.end();
}
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить