crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> размышления о Qt, STL и pragma
Litkevich Yuriy
  опции профиля:
сообщение 20.7.2010, 14:01
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Алексей1153 @ 20.7.2010, 16:53) *
То есть понятно: stl можно дальше продолжать использовать, Q_OBJECT лучше всегда ставить, а прагму - проверить, поддерживает ли компилятор
всё верно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 20.7.2010, 15:12
Сообщение #12


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(Алексей1153 @ 20.7.2010, 13:53) *
а прагму - проверить, поддерживает ли компилятор
ИМХО. Уж тогда лучше делать так как написано в Wikipedia
Цитата
Можно использовать обе команды, #pragma once и include guards, для написания переносимого кода, что также может принести выгоду от применения #pragma once при оптимизации (если компилятор её поддерживает):
File «grandfather.h»
#pragma once
#ifndef GRANDFATHER_H
#define GRANDFATHER_H

struct foo
{
    int member;
};

#endif /* GRANDFATHER_H */
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 20.7.2010, 15:54
Сообщение #13


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


igor_bogomolov, мой код вряд ли будет на множестве компиляторов обрабатываться, поэтому мне достаточно просто прагмы. Ну а если повстречается необходимость - то поиск по всему коду спасёт. Но это вряд ли понадобится :)

Проверил сейчас - в креаторе #pragma once прекрасно работает. В студии же всегда работала тоже
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 20.7.2010, 17:39
Сообщение #14


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


c STL есть две основных заморочки: с многопоточностью он частенько не дружит и память неоптимально жрёт. бывает, что программа начинает "расти" в памяти, хотя нигде ничего не выделяется вроде. это проделки STL-евских векторов и прочих подобных хранилищ. так что аккуратнее с ними надо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 21.7.2010, 9:36
Сообщение #15


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Iron Bug, многопоточности в STL нет неспроста - это дань скорости работы библиотеки. Если нужна синхронизация - это вручную (или оболочку соорудить)

Насчёт дефрагментации памяти - тут не в STL дело, того же самого можно добиться и вызовами new/delete. Тут уже зависит от подхода к проектированию - если предполагается частая реаллокация, то можно использовать свой пул (или можно аллокатор переопределить) объектов, а в контейнере держать указатели
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 12.8.2010, 21:20
Сообщение #16


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Только заметил - название темы. По-моему, не бывает "философия о <чём-либо>", философия - она "философия чего-либо" :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.8.2010, 21:51
Сообщение #17


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Алексей1153 @ 13.8.2010, 1:20) *
По-моему, не бывает "философия о <чём-либо>"
у меня слово "философия" ассоциируется со словом "размышления" :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 12.8.2010, 21:54
Сообщение #18


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Ну, так то оно так, даже переводится как "люблю мудрствовать", но по-русски не звучит текущее название темы )) А, поскольку, тема создана как бы от моего лица (а я так назвать не мог), вот и возмущаюсь немного :D

Можно оставить просто "Qt, STL и pragma" или "салат из Qt, STL и pragma"

Сообщение отредактировал Алексей1153 - 12.8.2010, 21:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.8.2010, 22:21
Сообщение #19


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


а если совсем по народному: размышления о Qt, STL и pragma
подойдёт?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 12.8.2010, 22:21
Сообщение #20


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


пойдёт )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3 >
Ответить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.11.2024, 23:23