J'ai un pb tres simple, je veux tranformer un const vector<T> en un vector<T*>.
Voici un extrait de mon code qui le fait :

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
18
19
20
    template<typename T>
    struct ToPtr : public std::unary_function<T, T*>
    {
        T* operator()(const T& value)
        {
            return const_cast<T*>(&value);
        }            
    };
 
template<typename T>
    void MyClass::order(const vector<T>& in,
                        vector<T*>& out) const
    {
 
            out.reserve(in.size());
            std::transform(in.begin(),
                               in.end(),
                               std::back_inserter(out),
                               ToPtr<T>());
}
Ce code marche tres bien mais ce qui me gene c'est le const_cast dans le foncteur. Est - ce qu'il existe une meilleure conception pour convertir un const vector<T> en vector<T*> ?