Xavier Lamorlette
Sommaire :
std::reference_wrapper
lexical_cast
convertit en utilisant les opérateurs de flux.
En cas d'échec, ça lève une exception bad_lexical_cast
.
#include <boost/lexical_cast.hpp>
string s = lexical_cast<string>(3);
using namespace std::literals;
auto s = "hello"s; // std::string
auto t = 3h + 28min + 12s; // t is a chrono::duration
constexpr auto tenMillion = 10'000'000; // on peut utiliser ' pour séparer les chiffres d'un nombre
constexpr unsigned long operator ""_K (unsigned long x) {
return 1024 * x;
}
class A_iterator {
A_iterator(const A_iterator & other);
A & operator * () const;
A_iterator & operator ++ () {
[…]
return * this;
}
};
bool operator != (const A_iterator & lhs, const A_iterator & rhs);
class A_const_iterator {
A_const_iterator(const A_iterator & other);
const A & operator * () const;
A_const_iterator & operator ++ () {
[…]
return * this;
}
};
bool operator != (const A_const_iterator & lhs, const A_const_iterator & rhs);
class A_collection {
A_iterator begin();
A_iterator end();
A_const_iterator begin() const;
A_const_iterator end() const;
};
std::reference_wrapper
Une std::reference_wrapper
est une référence copiable.
int a = 42;
std::reference_wrapper<int> b = std::ref(a);
int c = 12;
std::reference_wrapper<int> d = std::ref(c);
b = d;
Une assertion statique est une assertion vérifiée à la compilation.
template<typename T>
class A {
T *_t;
static_assert(not(is_void<T>::value, "Instantiating template class A with void");
};
make_tuple(t1, …, tn)
tie(t1, …, tn) ~ make_tuple(ref(t1), …, ref(tn)):
int i;
string s;
tie(i, s) = make_tuple(3, "hello");
tie(i, ignore) = //
La dernière mise à jour de cette page date de décembre 2020.
Le contenu de ce site est, en tant qu'œuvre originale de l'esprit, protégé par le droit d'auteur.
Pour tout commentaire, vous pouvez m'écrire à xavier.lamorlette@gmail.com.