Bonjour,
j'ai essayé d'implémenter cette faq. Cela consiste à convertir une chaîne de caractères en majuscule.
Voici mon code (c'est le même que la faq):
Et ça ne compile pas. J'obtiens une erreur sur la ligne "std::transform". L'erreur est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <algorithm> #include <cctype> #include <string> //... struct ps_toupper { char operator()(char c) const { return std::toupper(static_cast<unsigned char>(c)); } }; std::string UpperCase(std::string str) { return std::transform(str.begin(), str.end(), str.begin(), ps_toupper()); // erreur ici }
Je suis sous Visual Studio 2005 (donc Windows).c:\dev\tests\dumcpp\cconfigreader.cpp(157) : error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it)' : cannot convert parameter 1 from 'std::_String_iterator<_Elem,_Traits,_Alloc>' to 'std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
and
[
_Elem=char,
_Traits=std::char_traits<char>,
_Alloc=std::allocator<char>
]
and
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Je n'ai pas encore cherché d'où vient le problème, je tenais d'abord à vous en faire part.
Partager