Pytania oznaczone «c++»

90
Wywołaj funkcję C z kodu C ++

Mam funkcję C, którą chciałbym wywołać z C ++. Nie mogłem użyć extern "C" void foo()podejścia typu „ ”, ponieważ funkcja C nie została skompilowana przy użyciu g ++. Ale kompiluje się dobrze przy użyciu gcc. Jakieś pomysły, jak wywołać funkcję z C ++?

90
Jak utworzyć warunkową definicję typu w C ++

Próbuję zrobić coś takiego: #include <iostream> #include <random> typedef int Integer; #if sizeof(Integer) <= 4 typedef std::mt19937 Engine; #else typedef std::mt19937_64 Engine; #endif int main() { std::cout << sizeof(Integer) << std::endl; return 0; } ale...

90
Dlaczego lambda ma rozmiar 1 bajtu?

Pracuję z pamięcią niektórych lambd w C ++, ale trochę mnie dziwi ich rozmiar. Oto mój kod testowy: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout << &f << std::endl;...

90
Czy ta optymalizacja zmiennoprzecinkowa jest dozwolona?

Próbowałem sprawdzić, gdzie floattraci zdolność do dokładnego reprezentowania dużych liczb całkowitych. Więc napisałem ten mały fragment: int main() { for (int i=0; ; i++) { if ((float)i!=i) { return i; } } } Ten kod wydaje się działać ze wszystkimi kompilatorami, z wyjątkiem clang....

89
Jak odczytać wartość z rejestru systemu Windows

Biorąc pod uwagę klucz do jakiejś wartości rejestru (np. HKEY_LOCAL_MACHINE \ blah \ blah \ blah \ foo), jak mogę: Bezpiecznie ustal, czy taki klucz istnieje. Programowo (tj. Z kodem) pobierz jego wartość. Nie mam absolutnie żadnego zamiaru pisać czegokolwiek z powrotem do rejestru (przez...

89
Jak zadeklarować tablicę ciągów w C ++?

Staram się iterować wszystkie elementy statycznej tablicy ciągów w najlepszy możliwy sposób. Chcę móc zadeklarować go w jednej linii i łatwo dodawać / usuwać z niego elementy bez konieczności śledzenia liczby. Brzmi naprawdę prosto, prawda? Możliwe nierozwiązania: vector<string>...

89
Usuwanie wskaźnika do const (T const *)

Mam podstawowe pytanie dotyczące wskaźników const. Nie wolno mi wywoływać funkcji niebędących składowymi stałymi przy użyciu wskaźnika do stałej. Jednak mogę to zrobić na wskaźniku const: delete p; Spowoduje to wywołanie destruktora klasy, która w istocie jest „metodą” inną niż stała....

89
Dlaczego nie jest stała operatora [] dla map STL?

Wymyślony przykład, aby odpowiedzieć na pytanie: void MyClass::MyFunction( int x ) const { std::cout << m_map[x] << std::endl } To się nie skompiluje, ponieważ operator [] nie jest stałą. Jest to niefortunne, ponieważ składnia [] wygląda bardzo czysto. Zamiast tego muszę zrobić...