Domande taggate «c++17»

C ++ 17 è il nome dello standard C ++ approvato nel 2017. Si basa sul precedente standard C ++ 14, migliorando il linguaggio principale e la libreria standard e aggiungendo alcune nuove funzionalità linguistiche.

1
Il costruttore di std :: vector range può invocare conversioni esplicite?
Il seguente programma è ben formato? #include <vector> struct A { explicit A(int) {} }; int main() { std::vector<int> vi = {1, 2, 3, 4, 5}; std::vector<A> va(vi.begin(), vi.end()); } Secondo C ++ 17 [sequence.reqmts], il requisito per X u(i, j); dove si Xtrova un contenitore sequenza, è: Tdeve essere …
14 c++  c++17 

3
Sovraccarico di una funzione lambda
Come sovraccaricare una semplice funzione lambda locale? SSE del problema originale: #include <iostream> #include <map> void read() { static std::string line; std::getline(std::cin, line); auto translate = [](int idx) { constexpr static int table[8]{ 7,6,5,4,3,2,1,0 }; return table[idx]; }; auto translate = [](char c) { std::map<char, int> table{ {'a', 0}, {'b', …

1
Come funziona l'implementazione di c ++ nullptr?
Sono curioso di sapere come nullptrfunziona. Gli standard N4659 e N4849 dicono: deve avere tipo std::nullptr_t; non puoi prendere il suo indirizzo; può essere convertito direttamente in un puntatore e un puntatore in membro; sizeof(std::nullptr_t) == sizeof(void*); la sua conversione in boolè false; il suo valore può essere convertito in …



1
Operatore ambiguo in gcc
Ho creato un modello di funzione per stampare alcuni dei contenitori stl #include <iostream> #include <vector> #include <string> template <template <typename, typename> class C, typename T, typename A> std::ostream& operator<<(std::ostream& os, const C<T, A>& container) { for (auto& elem : container) { os << elem << " "; } return …
13 c++  c++17 





1
Unqualified sort () - perché viene compilato se utilizzato su std :: vector e non su std :: array, e quale compilatore è corretto?
Quando si chiama std::sort()un std::array: #include <vector> #include <array> #include <algorithm> int main() { std::vector<int> foo{4, 1, 2, 3}; sort(begin(foo), end(foo)); std::array<int, 4> foo2{4, 1, 2, 3}; sort(begin(foo2), end(foo2)); } Sia gcc che clang restituiscono un errore nell'ordinamento sul std::array- dice clang errore: uso dell'identificatore non dichiarato 'sort'; intendevi "std …
11 c++  c++17 


6
Gamma innocente basata su loop non funzionante
Non compila quanto segue : #include <iostream> int main() { int a{},b{},c{},d{}; for (auto& s : {a, b, c, d}) { s = 1; } std::cout << a << std::endl; return 0; } Provalo su godbolt L'errore del compilatore è: error: assignment of read-only reference 's' Ora nel mio caso …


3
Posso usare std :: transform sul posto con una politica di esecuzione parallela?
Se non sbaglio, posso far std::transformfunzionare sul posto usando lo stesso intervallo di un iteratore di input e output. Supponiamo di avere un std::vectoroggetto vec, quindi scrivo std::transform(vec.cbegin(),vec.cend(),vec.begin(),unary_op) usando un'operazione unaria adatta unary_op. Usando lo standard C ++ 17, vorrei eseguire la trasformazione in parallelo inserendone una std::execution::parcome primo argomento. …

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.