Pomoc z #pragma pack()
Ostatnio zmodyfikowano 2017-01-26 22:36
pekfos |
» 2017-01-26 17:54:34 @mokrowski: Wklejaj kod jak sobie tylko chcesz, aby tylko był na miejscu, zamiast na zewnętrznej stronie. Temat powinien zachowywać przydatność w czasie, a to może być cięższe, gdy twój link się urwie. Aktualny formatter nie obsługuje nowości składniowych i najprawdopodobniej nie będzie poprawiany. Wiedz jednak, że z nową iteracją serwisu będzie zupełnie nowy formatter i wtedy wszystkie teksty będą na nowo sformatowane. Jedno i drugie jest obecnie w trakcie tworzenia. (A jak już masz wklejać jakkolwiek, to lepiej chyba w [tt], niż [log]). long slow_fun() { long sum { }; for( size_t i = 0; i < 10000000000; ++i ) { sum += i; } return sum; } |
Skompilowane w 32b, i może nigdy nie dojść do tej wartości. |
|
Elaine |
» 2017-01-26 20:12:05 Aktualny formatter nie obsługuje nowości składniowych i najprawdopodobniej nie będzie poprawiany. Wiedz jednak, że z nową iteracją serwisu będzie zupełnie nowy formatter i wtedy wszystkie teksty będą na nowo sformatowane. |
Mogę zagwarantować, że jakakolwiek implementacja różna od identyczności będzie zmieniać znaczenie kodu, ale to nie mój problem :) |
|
pekfos |
» 2017-01-26 20:16:28 jakakolwiek implementacja różna od identyczności będzie zmieniać znaczenie kodu |
Przykład takiego kodu? |
|
Elaine |
» 2017-01-26 20:26:50 |
|
pekfos |
» 2017-01-26 20:42:20 Zgodnie ze standardem, białe znaki (rozdzielające tokeny) są ignorowane. Stąd, pilnując stringów itp, nie można zmienić znaczenia kodu poprawiając wcięcia, lub odstępy między operatorami, skoro podział na tokeny przed i po jest zachowany. |
|
Elaine |
» 2017-01-26 20:55:57 Zgodnie ze standardem, białe znaki (rozdzielające tokeny) są ignorowane. |
Tylko od siódmej fazy translacji. Nie w pierwszych sześciu. Nie doceniasz tego problemu. Ten kod się kompiluje: #include <cstddef>
#define FOO(x) #x
template <std::size_t N> struct foo;
template <> struct foo<4> { static constexpr int ok = 0; };
int main() { return foo<sizeof(FOO(2+2))>::ok; }
Spróbuj dodać spacje wokół dodawania. Nawet clang-format tego nie zauważa i psuje ten kod. |
|
pekfos |
» 2017-01-26 21:24:19 Nawet clang-format tego nie zauważa i psuje ten kod. |
Widać na makra nie ma mocnych ;) Można nie formatować argumentów makr, ale to w zasadzie bezcelowe. Formatter na tym forum musi najczęściej przerabiać fragmenty kodu, więc może nie wiedzieć co jest makrem. Tak samo szablonu nie można rozpoznać we wszystkich przypadkach. Same kolorowanie prędzej i w większej ilości nazbiera tu wrogów, niż formatowanie które czasem zepsuje złośliwie sformułowany kod ;) Dla specjalnych przypadków, będzie zostawiona opcja samego kolorowania. |
|
Elaine |
» 2017-01-26 21:30:19 Dla specjalnych przypadków, będzie zostawiona opcja samego kolorowania. |
<3 |
|
1 « 2 » 3 |