Perguntas com a marcação «c++11»

Use essa tag para código que deve ser compilado como C ++ 11 (sem usar os recursos introduzidos no C ++ 14 ou posterior).



5
Posso listar e inicializar um vetor do tipo apenas de movimentação?
Se eu passar o código a seguir por meio de meu instantâneo GCC 4.7, ele tentará copiar os unique_ptrs para o vetor. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Obviamente, isso não pode funcionar porque std::unique_ptrnão é copiável: …

3
Como verificar corretamente se std :: function está vazio em C ++ 11?
Eu queria saber como verificar corretamente se um std::functionestá vazio. Considere este exemplo: class Test { std::function<void(int a)> eventFunc; void registerEvent(std::function<void(int a)> e) { eventFunc = e; } void doSomething() { ... eventFunc(42); } }; Este código compila perfeitamente no MSVC, mas se eu chamar doSomething()sem inicializar eventFunco código obviamente …

4
Passando shared_ptr <Derived> como shared_ptr <Base>
Qual é o melhor método para passar a shared_ptrde um tipo derivado para uma função que recebe a shared_ptrde um tipo base? Eu geralmente passo shared_ptrs por referência para evitar uma cópia desnecessária: int foo(const shared_ptr&lt;bar&gt;&amp; ptr); mas isso não funciona se eu tentar fazer algo como int foo(const shared_ptr&lt;Base&gt;&amp; …

6
error :: make_unique não é membro de 'std'
Estou tentando compilar o seguinte programa de pool de threads postado na revisão de código para testá-lo. /codereview/55100/platform-independant-thread-pool-v4 Mas estou recebendo os erros threadpool.hpp: In member function ‘std::future&lt;decltype (task((forward&lt;Args&gt;)(args)...))&gt; threadpool::enqueue_task(Func&amp;&amp;, Args&amp;&amp; ...)’: threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope auto package_ptr = make_unique&lt;task_package_impl&lt;R, decltype(bound_task)&gt;&gt; (std::move(bound_task), std::move(promise)); ^ threadpool.hpp:94:81: …


3
Constexpr vs macros
Onde devo preferir usar macros e onde devo preferir constexpr ? Eles não são basicamente os mesmos? #define MAX_HEIGHT 720 vs constexpr unsigned int max_height = 720;
95 c++  c++11  macros  constexpr 



3
Quando usar o inicializador entre chaves?
Em C ++ 11, temos essa nova sintaxe para inicializar classes que nos dá um grande número de possibilidades de como inicializar variáveis. { // Example 1 int b(1); int a{1}; int c = 1; int d = {1}; } { // Example 2 std::complex&lt;double&gt; b(3,4); std::complex&lt;double&gt; a{3,4}; std::complex&lt;double&gt; c …

8
C ++ lambda com capturas como um ponteiro de função
Eu estava brincando com lambdas C ++ e sua conversão implícita em ponteiros de função. Meu exemplo inicial foi usá-los como retorno de chamada para a função ftw. Isso funciona conforme o esperado. #include &lt;ftw.h&gt; #include &lt;iostream&gt; using namespace std; int main() { auto callback = [](const char *fpath, const …


6
C ++ terminate chamado sem uma exceção ativa
Estou recebendo um erro C ++ com threading: terminate called without an active exception Aborted Aqui está o código: #include &lt;queue&gt; #include &lt;thread&gt; #include &lt;mutex&gt; #include &lt;condition_variable&gt; template&lt;typename TYPE&gt; class blocking_stream { public: blocking_stream(size_t max_buffer_size_) : max_buffer_size(max_buffer_size_) { } //PUSH data into the buffer blocking_stream &amp;operator&lt;&lt;(TYPE &amp;other) { std::unique_lock&lt;std::mutex&gt; mtx_lock(mtx); …

15
O C ++ 11 tem propriedades no estilo C #?
Em C #, há um açúcar de sintaxe agradável para campos com getter e setter. Além disso, gosto das propriedades implementadas automaticamente, que me permitem escrever public Foo foo { get; private set; } Em C ++ eu tenho que escrever private: Foo foo; public: Foo getFoo() { return foo; …
93 c#  c++  class  c++11 

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.