Articles of c ++ 11

Quel est le problème avec mon boolinq .orderBy?

Alors j’essaie le code compilable suivant: #include #include #include #include #include “boolinq.h” float dtSqrt(float x) { return sqrtf(x); } /// Returns the distance between two points. /// @param[in] v1 A point. [(x, y, z)] /// @param[in] v2 A point. [(x, y, z)] /// @return The distance between the two points. inline float dtVdist(const float* v1, […]

Vérifier si une classe a une fonction qui contient des parameters

Après avoir lu la question de Est-il possible d’écrire un modèle C ++ pour vérifier l’existence d’une fonction? , et j’ai testé quelques réponses, je trouve que cela ne fonctionne que pour détecter des fonctions qui ne prennent aucun paramètre, par exemple void HelloWord (). La recherche de réponses ne donne que des solutions à […]

C ++: quels constructeurs sont appelés dans le vecteur vn {MyAllocator (a)}?

J’ai un allocateur sortingvial: // alloc.h #include #include #include template struct Mallocator { typedef T value_type; Mallocator() { std::cout << "default ctor is called" << std::endl; } template Mallocator(const Mallocator&) { std::cout << "copy ctor is called" << std::endl; } T* allocate(std::size_t n) { std::cout << "Mallocator::allocate(size_t n) is called, n = " << n […]

Comstack le temps de hachage avec constexpr

J’ai trouvé cet exemple / cette classe dans un livre pour la création de hachages SDBM au moment de la compilation. Malheureusement, il ne comstack pas (ni avec c ++ 11 ni c ++ 14). Je reçois une error: call to non-constexpr function . J’ai essayé un peu, mais je n’arrive pas à faire ce […]

MATLAB Mex: déjà eu -std = c ++ 11, mais toujours l’erreur du “support du compilateur et de la bibliothèque”

J’exécute actuellement MS COCO MatlabAPI sur WIN 10. Je souhaite produire un fichier appelé gasonMex.mexw64. J’ai installé MinGW64 et le simple fichier Matlab .c a été testé et fonctionne. j’ai utilisé mex -v COMPFLAGS=’$COMPFLAGS -std=c++11 -Wall’ -largeArrayDims gasonMex.cpp Verbose mode is on. … Looking for comstackr ‘MinGW64 Comstackr (C++)’ … … Looking for environment variable […]

Les membres d’un type de structure POD ou d’une disposition standard sont-ils garantis pour être alignés en fonction de leurs exigences d’alignement?

Étant donné une structure POD (en C ++ 03) ou un type de présentation standard (en C ++ 11), avec tous les membres ayant une exigence d’alignement fondamentale, est-il vrai que chaque membre est garanti d’être aligné selon ses exigences ? En d’autres termes, pour tous les membres m_k dans { m0 … mn } […]

Expansion du pack de modèles variadés c ++ par groupes de taille arbitraire

(En quelque sorte lié à cette question précédente) Je veux évaluer les parameters d’une fonction de modèle par groupes de N parameters. Quelque chose comme ça: template void evaluate(Ts const & … fn) { for( int i=0; i<2; i++ ) runH::func(i, fn…); } int main() { run( // N = 2 [](int i){ cout << […]

la performance de emplace est pire que le contrôle suivi par emplace

J’ai un std::unordered_map unordered_map avec un value_type qui n’a pas de constructeur par défaut donc je ne peux pas faire ce qui suit auto k = get_key(); auto& v = my_map[k]; J’ai fini par écrire une fonction d’assistance value_type& get_value(key_type& key) { return std::get(my_map.emplace( std::piecewise_construct, std::forward_as_tuple(key), std::forward_as_tuple(args_to_construct_value) ))->second; } mais la performance était nettement pire […]

std :: rethrow_exception et type d’exception levée

Dans une bibliothèque, j’ai une hiérarchie d’exceptions ( RuntimeException -> RecognitionException -> NoViableAltException ). Au cours de l’exécution, une NoViableAltException est levée. Elle est interceptée comme suit et un pointeur d’exception est créé à partir de celui-ci: try { //code that throws NoViableAltException } catch (RecognitionException &re) { std::exception_ptr e = std::make_exception_ptr(re); reportError(e); } La […]

La mémoire est-elle automatiquement récupérée lorsqu’un constructeur délégué lève?

Suite à cela: le destructeur est-il appelé lorsqu’un constructeur délégué lance? class X { public: X() {}; X(int) : X() { throw std::exception(); } X(double) { throw std::exception(); } ~X(); }; Qu’en est-il de la mémoire dynamic? Normalement, une exception dans le constructeur signifie que l’object n’a pas été entièrement construit et que la mémoire […]