Richard
лучше: int* x; int* y; int* z; (это не про положение звездочки)
да я так всегда и делаю) я просто показывал, в чем разница стилей и к чему это ведет.
Vlad
а, ну да, ты прав
zoleg
любовь к с++ - эт стокгольмский синдром
mefest
лучше: int* x; int* y; int* z; (это не про положение звездочки)
не любишь инициализацию в строчку?
Denis
А кто любит-то? ^^
mefest
А кто любит-то? ^^
иногда мне кажется уместно
mefest
например float posX, posY;
Berkus
иногда мне кажется уместно
неа, хороший тон в с++ это инициализировать переменные при объявлении, а в строчку это делать некрасиво и/или неудобно
Suigintou45
объявлять в процессе использования
Denis
например float posX, posY;
Дело в том, что надо как имнимум так float posX = 0, posY = 0; Уже как-то не алё
Berkus
аналогично
Denis
На саммо деле, лично мне толко один варик нравится int a, b, c, d; std::tie(a, b, c, d) = fnshn();
Berkus
struct X { int* p = nullptr; int* w = nullptr; }
Denis
Но после того, как разок-другой неинициализированную переменную проебёшь, такие строчки будут в пот кидать 😆
mefest
см выше
компилятор ругает за инициалицию переменных в .h
Berkus
возьми нормальный компилятор
mefest
gcc
Roman
Atom is a notable exception, but if you expect performance on any general loads from Atom, you need to get your head examined.
Berkus
gcc
забыл -std=c++11?
Denis
struct TPosition { float posX{ 0 }; float posY{ 0 }; }; TPosition pos{};
Нуууу, ты всё равно в столбик написал, а не в строчку 😆
Vlad
откуда эта страсть экономить строки?
Vlad
на дворе 2017 год
Berkus
~/Misc> cat str.h struct X { int* p = nullptr; int* w = nullptr; }; ~/Misc> cat str.cpp #include "str.h" #include <iostream> int main() { X x; std::cout << x.w << std::endl; } ~/Misc> g++ -o str str.cpp -std=c++11 ~/Misc> ./str 0x0
Denis
Обсуждали хорошо ли писать в строчку вот так int a, b, c;
Vlad
нельзя на это забиваться
Berkus
откуда там 0, это УКАЗАТЕЛЬ
mefest
откуда эта страсть экономить строки?
я сказал что мне кажется уместно иногда в строку
Berkus
это std::cout
Vlad
превращение nullptr в нулевой адрес - это UB
Berkus
блин
Berkus
я просто показал что оно инициализируется и компилится без варнингов
Berkus
до чего ты именно докапываешься в этом примере?
Vlad
погоди
Vlad
а почему должен быть ворнинг?
mefest
а почему должен быть ворнинг?
у меня ругается на инициализацию переменные в классе в .h файле
Berkus
не везет тебе_))
у меня все отлично с с++, спасибо
Vlad
у меня все отлично с с++, спасибо
сорри я так уж глазом увидел, ревьюшничаю код щас
Al
Ты этот h файл в много сишных инклудишь?
Pepe 🐸
Редекларейт?
Мой внутренний парсер заругался
Al
Либо в h облявляй как static либо инициализируй в си и делай extern в h
Vlad
да хоть во сколько - в том случае не должно быть ругательств
Al
ну... в несколько
Ну у тебя линковки и ругается
Al
Так а где случай то!
Al
Если в h объявить int x = 0; и тыкать его везде
Vlad
кстати в C++17 можно будет написать inline int x = 0;
Vlad
наконец-то!
mefest
Berkus
это внутри объекта, алло
Al
кстати в C++17 можно будет написать inline int x = 0;
Щас с функциями тоже так можно
Berkus
не надо поля класса объявлять static, вы ща наобъявляете тут
Al
это внутри объекта, алло
Так на что ругается то, я пример не вижу)
Al
не надо поля класса объявлять static, вы ща наобъявляете тут
Я не про поля говорил, а поля можно инитить в 11
Berkus
мы про поля сейчас говорили
Berkus
прочитай пожалуйста диалог выше
mefest
Так на что ругается то, я пример не вижу)
ну кароче писал я в Qt свой класс окна и инициализировал там некое поле класса прям в .h файле, вот на это он и ругался
Berkus
причем как ругался тоже не сказано
mefest
прочитай пожалуйста диалог выше
тут все отвечают сразу не вникнув в суть?
mefest
=)
Berkus
может быть на -Wc++11-extension