Articles of std

Como truncar um arquivo enquanto ele está aberto com o fstream

Eu sei que é possível truncar um arquivo com std::fstream fs(mypath, std::fstream::out | std::fstream::trunc); mas eu preciso ler o arquivo, truncá-lo e, em seguida, escrever novos conteúdos, todos com o mesmo identificador de arquivo (para que toda a operação seja atômica). Alguém?

std :: put_time status de implementação no GCC?

Eu estava tentando compilar este programa de exemplo usando o GCC (versões testadas 4.5.1, 4.6.3, 4.8.4): #include #include #include #include using std::chrono::system_clock; int main() { system_clock::time_point now = system_clock::now(); std::time_t now_c = system_clock::to_time_t( now – std::chrono::hours(24)); std::cout << "One day ago, the time was " << std::put_time(std::localtime(&now_c), "%F %T") << '\n'; } Mas isso me […]

Passando rvalues ​​por std :: bind

Eu quero passar um rvalue através de std::bind para uma function que leva uma referência rvalue em C ++ 0x. Eu não consigo descobrir como fazer isso. Por exemplo: #include #include template void foo(Type &&value) { Type new_object = std::forward(value); // move-construct if possible } class Movable { public: Movable(Movable &&) = default; Movable &operator=(Movable […]

Quando é necessário usar o flag -stdlib = libstdc ++?

Quando é necessário usar o flag -stdlib=libstdc++ para o compilador e o linker ao compilar com o gcc? O compilador usa automaticamente o libstdc ++? Estou usando o gcc4.8.2 no Ubuntu 13.10 e gostaria de usar o padrão c ++ 11. Eu já passo -std=c++11 para o compilador.

Podemos confiar no truque de redução de capacidade?

É realmente garantido em qualquer lugar que o seguinte truque de redução de capacidade irá “funcionar”? int main() { std::string s = “lololololol”; s = “”; // capacity still non-zero string(s).swap(s); // ? } Não parece “funcionar” para mim (na medida em que a capacidade permanece diferente de zero), e não consigo encontrar nada no […]

É o C ++ std :: set thread-safe?

Eu tenho uma pergunta sobre a segurança do thread de std :: set. Tanto quanto sei, posso iterar sobre um conjunto e adicionar / apagar membros e isso não invalida os iteradores. Mas considere seguir o cenário: thread ‘A’ itera sobre um conjunto de shared_ptr thread ‘B’ ocasionalmente adiciona itens a este conjunto. Eu experimentei […]

std :: par de referências

É válido ter um std::pair de referências? Em particular, há problemas com o operador de atribuição? De acordo com esse link , parece não haver tratamento especial com operator =, portanto, o operador de designação padrão não poderá ser gerado. Eu gostaria de ter um pair e ser capaz de atribuir a ele outro par […]

Como converter std :: chrono :: time_point para string de data e hora do calendar com segundos fracionários?

Como converter std :: chrono :: time_point para string de data e hora do calendar com segundos fracionários? Por exemplo: “10-10-2012 12: 38: 40.123456”.

std :: shared_ptr thread safety

Eu li isso “Vários encadeamentos podem ler e gravar simultaneamente diferentes objects shared_ptr, mesmo quando os objects são cópias que compartilham a propriedade.” ( MSDN: Segurança de thread na biblioteca C ++ padrão ) Isso significa que alterar o object shared_ptr é seguro? Por exemplo, o próximo código é considerado seguro: shared_ptr global = make_shared(); […]

O que posso e não posso especializar no namespace std?

Os usuários podem adicionar especializações explícitas ao namespace std . No entanto, existem alguns modelos que estou explicitamente proibido de especializar. Quais modelos posso e não posso me especializar?