Sto valutando l'utilizzo di alcune funzionalità C ++ 11 (come autoad esempio) in alcuni progetti multipiattaforma (Windows + Mac). Su Windows, Visual Studio supporta parti del prossimo standard C ++ 11 che mi consentirebbero di semplificare parti della base di codice, quindi naturalmente sarei interessato a iniziare a utilizzare queste …
Dopo l'aggiornamento a Catalina da Mojave, Installazione: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk in ambiente. Non riesco a compilare un programma che utilizza l' <cmath>intestazione. Ho provato a cambiare CFLAGS, CCFLAGS, CXXFLAGS per indicare la posizione di MacOSSDK che non cambia nulla Scanning dependencies of target OgreMain /Applications/Xcode.app/Contents/Developer/usr/bin/make -f OgreMain/CMakeFiles/OgreMain.dir/build.make OgreMain/CMakeFiles/OgreMain.dir/build [ 0%] Building CXX …
Non capisco qual è il problema: né nel mio codice né nel compilatore (meno possibile). C'è un pezzo di codice come questo: #include <iostream> #include <type_traits> #include <set> template<typename T, typename = void> struct TestA: std::false_type {}; template<typename T> struct TestA<T, std::void_t<typename T::reverse_iterator>> : std::true_type {}; template<typename T> struct TestA<T, …
Ho un codice come questo: #include <vector> #include <utility> int main() { std::vector<bool> vb{true, false}; std::swap(vb[0], vb[1]); } Argomenti sulla sanità mentale a vector<bool>parte, questo funzionava perfettamente su: Clang per Mac Visual Studio per Windows GCC per Linux Quindi ho provato a costruirlo con Clang su Windows e ho ricevuto …
Ecco una funzione C che aggiunge una inta un'altra, non riuscendo in caso di overflow: int safe_add(int *value, int delta) { if (*value >= 0) { if (delta > INT_MAX - *value) { return -1; } } else { if (delta < INT_MIN - *value) { return -1; } } …
Il mio scenario è il seguente (ha funzionato in clang ma non in gcc) liba.hpp: inline int MY_GLOBAL = 0; libother.cpp: (dll) #include "myliba.hpp" void myFunc() { // MYGLOBAL = 28; } someexe.cpp: RunAppThatUsesBothLibAandLibOther(); Il problema è che la variabile inline mostrava 0 nei punti in cui mi aspettavo 28 …
Ho un piccolo progetto di test che utilizza OpenMP per la parallelizzazione. Il mio obiettivo è quello di compilarlo in modo che produca .dlle .libper le librerie (perché il mio progetto reale si collega a librerie esterne distribuite utilizzando questi tipi), con supporto per OpenMP 4.5 o versioni successive e …
Considera questo codice C: void foo(void); long bar(long x) { foo(); return x; } Quando lo compilo su GCC 9.3 con -O3o -Os, ottengo questo: bar: push r12 mov r12, rdi call foo mov rax, r12 pop r12 ret L'output di clang è identico tranne che per la scelta rbxanziché …
Considera questo programma: #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } Impossibile compilare con msvc v19.24: <source>(5): error C2440: '<function-style-cast>': cannot convert from 'nullptr' to 'my_time_t' <source>(5): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral …
Considera i 2 sovraccarichi seguenti template<typename T> bool test() { return true; } template<template<typename ...> class T> bool test() { return false; } Il primo funziona per le classi regolari, mentre il secondo per i modelli non istanziati. Per esempio: std::cout<<test<int>()<<std::endl; <-- this yields 1 std::cout<<test<std::list>()<<std::endl; <--this yields 0 Ora …
Quindi, sto cercando di implementare il prodotto dot ( https://en.wikipedia.org/wiki/Dot_product ) in un certo stile del moderno C ++ e ho trovato il seguente codice: #include <iostream> template<class... Args> auto dot(Args... args) { auto a = [args...](Args...) { return [=](auto... brgs) { static_assert(sizeof...(args) == sizeof...(brgs)); auto v1 = {args...}, i1 …
Sto scrivendo una funzione in cui vorrei accettare 2 types di parametri. A string(carattere *) A structuredove ci saranno n numero di elementi. E per raggiungere questo obiettivo sto pensando di usare un semplice void *tipo di parametro. Ma non so come verificare se il parametro è di un tipo …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.