Articles of visual c ++

Por que exatamente eu preciso de um upcast explícito ao implementar o QueryInterface () em um object com várias interfaces ()

Suponha que eu tenha uma class implementando duas ou mais interfaces COM: class CMyClass : public IInterface1, public IInterface2 { }; Quase todos os documentos que vi sugerem que quando eu implemento QueryInterface () para IUnknown eu explicitamente elevo este ponteiro para uma das interfaces: if( iid == __uuidof( IUnknown ) ) { *ppv = […]

Inicialização de valor e tipos não POD

Uma hora atrás eu postei uma resposta aqui que de acordo comigo estava correta. No entanto, minha resposta foi rejeitada por Martin B. Ele disse Você está com sorte e está recebendo zeros porque a memory em que eu estava foi inicializada com zero. Isso não é garantido pelo padrão. No entanto, depois de ler […]

Diferença no desempenho entre o MSVC e o GCC para um código de multiplicação de matriz altamente otimizado

Estou vendo uma grande diferença no desempenho entre o código compilado no MSVC (no Windows) e no GCC (no Linux) para um sistema Ivy Bridge. O código faz multiplicação de matriz densa. Estou obtendo 70% dos flops de pico com GCC e apenas 50% com MSVC. Acho que posso ter isolado a diferença de como […]

Por que comparar o dobro e o float leva a um resultado inesperado?

Duplicar Possível: saída estranha em comparação de float com float literal float f = 1.1; double d = 1.1; if(f == d) // returns false! Por que é tão?

O que significa a operação c = a +++ b?

O código a seguir me confundiu int a=2,b=5,c; c=a+++b; printf(“%d,%d,%d”,a,b,c); Eu esperava que a saída fosse 3,5,8, principalmente porque um ++ significa 2 +1 que é igual a 3 e 3 + 5 é igual a 8, então eu esperava 3,5,8. Acontece que o resultado é 3,5,7. Alguém pode explicar por que esse é o […]

Expansão de macro variadic do MSVC ++

Então eu tenho uma macro que funciona muito bem no GCC, mas não no compilador C ++ da Microsoft. Espero que alguém possa saber de uma solução alternativa, ou talvez possa me explicar por que ela se comporta dessa maneira. Tenho certeza de que essa macro não é exatamente “padrão”, mas realmente me ajudaria. Aqui […]

aviso de fopen depreciado

No compilador C ++ Visual Studio 2005 , recebo o seguinte aviso quando meu código usa o fopen e tais chamadas. 1>foo.cpp(5) : warning C4996: ‘fopen’ was declared deprecated 1> c:\program files\microsoft visual studio 8\vc\include\stdio.h(234) : see declaration of ‘fopen’ 1> Message: ‘This function or variable may be unsafe. Consider using fopen_s instead. To disable […]

Por que o Visual Studio 2010 não consegue localizar / abrir arquivos PDB?

Estou tentando usar o OpenCV no VS 2010. Sou um amador e estou aprendendo os primeiros passos do wiki do OpenCV. No entanto, ao tentar depurar meu projeto, recebo os seguintes erros: ‘C: \ Windows \ SysWOW64 \ ntdll.dll’, não é possível localizar ou abrir o arquivo PDB ‘C: \ Windows \ SysWOW64 \ kernel32.dll’, […]

Parar automaticamente o Visual C ++ 2008 compilar no primeiro erro de compilation?

Eu sei que posso compilar arquivos de origem individuais, mas às vezes – digamos, ao editar um arquivo de header usado por muitos arquivos .cpp – vários arquivos de origem precisam ser recompilados. É para isso que Build é. O comportamento padrão do comando “Criar” no VC9 (Visual C ++ 2008) é tentar compilar todos […]

O novo retorno retornará NULL em qualquer caso?

Eu sei que, de acordo com o padrão C ++, caso o novo não consiga alocar memory, ele deve lançar a exceção std :: bad_alloc. Mas ouvi dizer que alguns compiladores como o VC6 (ou a implementação do CRT?) Não aderem a ele. Isso é verdade ? Eu estou perguntando isso porque a verificação de […]