Используя C++ GCC 0x режим в производстве?

То, что Вы хотите связать/интерполировать и как Вы хотите отформатировать результат, должно управлять Вашим решением.

  • Строковая интерполяция позволяет Вам легко добавлять форматирование. На самом деле Ваша строковая версия интерполяции не делает того же самого как Вашей версии конкатенации; это на самом деле добавляет дополнительную наклонную черту вправо перед q_num параметр. Чтобы сделать то же самое, необходимо было бы записать return DOMAIN + QUESTIONS + "/" + str(q_num) в том примере.

  • Интерполяция помогает отформатировать численные данные; "%d of %d (%2.2f%%)" % (current, total, total/current) было бы намного менее читаемо в форме конкатенации.

  • Конкатенация полезна, когда у Вас нет постоянного числа объектов для строкового представления.

кроме того, знайте, что Python 2.6 представляет новую версию строковой интерполяции, названной строка, обрабатывающая по шаблону :

def so_question_uri_template(q_num):
    return "{domain}/{questions}/{num}".format(domain=DOMAIN,
                                               questions=QUESTIONS,
                                               num=q_num)

Строковая шаблонная обработка намечена для возможной замены % - интерполяция, но этого не произойдет долгое время, я думаю.

9
задан rpg 12 September 2009 в 11:19
поделиться

3 ответа

IMHO, поддержка TR1 и auto безопасны в использовании. В случае auto это была одна из первых функций, которые были включены в стандарт, и это относительно небольшое изменение языка. Поэтому у меня не было бы проблем с его использованием.

Я бы немного сомневался в использовании списков инициализаторов . На некоторых других форумах (например, comp.lang.c ++. Moderated) есть вопросы об их поведении и возможном изменении их поведения ближе к выпуску стандарта.

4
ответ дан 4 December 2019 в 21:10
поделиться

Я не использую поддержку GCC 4.4.0 C ++ 0x в производстве, но я использую функции TR1 с помощью библиотеки Boost http: // www. Boost Library хорошо протестирована и часто используется в производственных средах. Если вы позже конвертируете в стандарт C ++ 0x, единственное, что вам нужно сделать, это изменить свои директивы включения http://www.boost.org/doc/libs/1_40_0/doc/html/boost_tr1.html .

На мой взгляд, сейчас лучше использовать Boost Library, пока стандарт не будет готов. Это гораздо более независимый от компилятора способ.

4
ответ дан 4 December 2019 в 21:10
поделиться

MinGW просто не будет компилироваться с '-std = c ++ 0x'. Как ни странно, работает '-std = gnu ++ 0x'. В любом случае он кажется глючным, и я не буду на это рассчитывать.

2
ответ дан 4 December 2019 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: