Articles of portabilità

Modo portatile per impostare la priorità di std :: thread in C ++ 11

Qual è il modo corretto nel mondo del post C ++ 11 per impostare la priorità di un’istanza di std :: thread C’è un modo portatile per farlo che funziona almeno in ambienti Windows e POSIX (Linux)? O si tratta di ottenere un handle e utilizzare qualsiasi chiamata nativa disponibile per il particolare sistema operativo?

conversione del percorso di msys (o cygpath per msys?)

Ho bisogno di passare /DEF:c:\filepath\myLib.def “opzione da riga di comando da uno script di bash a MS compilatore / linker.Il percorso viene generato come parte del processo di generazione da uno script bash. Fondamentalmente, l’argomento che il mio script passa è: -DEF:/c/filepath/myLib.def La conversione del percorso MSYS non può gestirlo correttamente perché non capisce /DEF: […]

La libreria C / C ++ di Portable Compare And Swap (atomic operations)?

C’è una piccola libreria, che racchiude le operazioni CAS-like di vari processori in macro o funzioni, che sono portatili su più compilatori? PS. La libreria atomic.hpp si trova all’interno del namespace boost :: interprocess :: detail. L’autore si rifiuta di renderlo una biblioteca pubblica e ben tenuta. Consente di riaprire la domanda e vedere se […]

Come determinare i tipi interi che hanno il doppio della larghezza di `int` e` unsigned`?

I valori di moltiplicazione intermedia in genere richiedono il doppio del numero di bit come input. // Example int foo(int a, int b, int carry, int rem) { int2x c; // Some type that is twice as wide at `int` c = (int2x)a * b + carry; return (int) (c % rem); } Considerando il […]

Qual è il più piccolo eseguibile di Windows (PE) ansible?

Come precursore della scrittura di un compilatore sto cercando di capire il formato eseguibile portatile di Windows (32 bit). In particolare mi piacerebbe vedere un esempio di un eseguibile bare-bones che non fa altro che caricare correttamente, eseguire ed uscire. Ho provato a scrivere e compilare una semplice funzione principale di C che non fa […]

Portabilità della serializzazione binaria di tipo double / float in C ++

Lo standard C ++ non discute il layout sottostante dei tipi float e double, ma solo l’intervallo di valori che dovrebbero rappresentare. (Questo vale anche per i tipi firmati, è il complimento di due o qualcos’altro) La mia domanda è: quali sono le tecniche utilizzate per serializzare / deserializzare i tipi di POD come double […]

Conversione di Little Endian in Big Endian

Tutti, Ho praticato i problemi di codifica online. Attualmente sto lavorando su una dichiarazione di problemi Problemi in cui abbiamo bisogno di convertire Big Endian little endian. Ma non sono in grado di annotare i passaggi considerando l’esempio dato come: 123456789 converts to 365779719 La logica che sto considerando è: 1> Ottieni il valore intero […]

In C ++, è sicuro / portatile utilizzare il puntatore di funzione membro statico per i callback API C?

In C ++, è sicuro / portatile utilizzare il puntatore di funzione membro statico per i callback API C? L’ABI di un membro statico funziona allo stesso modo di una funzione C?

Come devo stampare tipi come off_t e size_t?

Sto provando a stampare tipi come off_t e size_t . Qual è il segnaposto corretto per printf() che è portatile ? O c’è un modo completamente diverso per stampare quelle variabili?

Il posizionamento nuovo per gli array può essere utilizzato in modo portatile?

È ansible utilizzare effettivamente il posizionamento nuovo nel codice portatile quando lo si utilizza per gli array? Sembra che il puntatore che torni da new [] non sia sempre uguale all’indirizzo che hai inserito (5.3.4, la nota 12 nello standard sembra confermare che questo è corretto), ma non vedo come tu può allocare un buffer […]