LINUX.ORG.RU

C++, строки, экранирование, банальность


0

1

Пришлось мне повозиться со строками, содержащими кучу всяких слешей, кавычек и прочих символов, требующих экранирования. Редкой муторности занятие. Но новый стандарт предлагает решение:

R"delimiter(<script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax: {inlineMath: [["$","$"],["\\(","\\)"]]}});</script>)delimiter"
Всё, что между R"delimiter( и )delimiter" пишется без экранирования. Что? Это написано в стандарте? Да, написано. Но кто его читает? Так что примите к сведению.

★★☆

Ответ на: комментарий от anonymous

А то, чтобы где-то об этом прочитать надо об этом знать.
Сложно найти то, о чём и не подозреваешь.

Stahl ★★☆
() автор топика

видел это на stackexchange год назад

anonymous
()

Но кто его читает?

Программисты? Никто, кроме тебя, не виноват, что ты не прочитал хотя бы обзор новых фич языка.

E ★★★
()

Внимание! Обнаружен ЖЖ Артемия Лебедева!

Что? Это написано в стандарте? Да, написано. Но кто его читает? Так что примите к сведению.

Кому надо, тот давно прочитал. Но ты продолжай наблюдение.

theNamelessOne ★★★★★
()

Но кто его читает? Так что примите к сведению.

--std=c++11 ?

KennyMinigun ★★★★★
()

Как кто? Кто-то читает. Надо тоже кстати прочесть новый.

false ★★★★★
()

Вот только не ври, что это С++, а не какое-то новомодное фи.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от comp00

C++14 — это доведение до ума C++11, так что ничего страшного. Попробовал писать на C++11 и понял, что мне ещё не совсем удобно. Чувствуется незавершённость некоторых фич, в частности, механизма лямбда-функций. Вот пускай исправляют, дополняют. Потом напишут хороших книжек о подводных камнях, мы их прочитаем, и всё будет хорошо.

uuwaan ★★
()
Ответ на: комментарий от Stahl

вывод - читать стандарты от корки до корки полезно :)

Harald ★★★★★
()

Что? Это написано в стандарте? Да, написано. Но кто его читает? Так что примите к сведению.

0_о Ну ок.

Kuzy ★★★
()
Ответ на: комментарий от uuwaan

На самом деле для С++11 была очень годная пдф-ка, раскрывающая большую часть фич. Но, к сожалению, стандарты не научат тебя использовать эти фичи. В конце-концов отличия между 03 и 11 отнюдь не минорные,. По сути язык нужно изучать заново, а для этого нужна соответствующая литература. Я лично по c++11 такого не видел. Надеюсь, с 14 не будет такого, и страуструп что нибудь да напишет.

comp00 ★★★★
()
Ответ на: комментарий от comp00

стандарты не научат тебя использовать эти фичи

получается обычно наоборот: стандарт - это долгожданная фича. и с С++14 у меня так же выходит: только я подумаю «эх, вот тут бы вот так сделать...» - а оно уже есть в С++14! просто пока не реализовано в компиляторах. интереснее всего читать предложения в новый стандарт и размышлять над ними на досуге.

а для обкатки используется boost. то, что в бусте уже фиг знает сколько лет, переходит в стандарт и обычно не возникает вопросов про использование.

надеюсь, С++14 они не будут утрясать 10 лет :)

Iron_Bug ★★★★★
()
Ответ на: комментарий от comp00

Хех, прикольная штука. Главное не слишком внимательно читать, а то ещё вдруг захочется использовать лямбды и прочие шаблоны:)

Stahl ★★☆
() автор топика
Ответ на: комментарий от Stahl

А то, чтобы где-то об этом прочитать надо об этом знать.

Нет. Хочешь быть профи - читай стандарт, начиная с последних драфтов. Хочешь быть любителем - продолжай узнавать о нововведениях с хабра, форумов и из третьесортных статей.

g0t0
()
Ответ на: комментарий от stevejobs

ЕМНИП, в новом стандарте выпилили только компилируемые темплейты, которые ни один компилятор так до ума и не довел. В остальном - полная обратная совместимость.

g0t0
()
Ответ на: комментарий от stevejobs

Обратная совместимость есть и нареканий не вызывает. А основная причина в том, что, чтобы что-то с C++11 получить, надо адаптировать программы под него. А нафиг трогать, коли работает и работает как надо?

uuwaan ★★
()
Ответ на: комментарий от Stahl

Главное не слишком внимательно читать

Действительно, а то поводов для тредов не будет!

comp00 ★★★★
()
Ответ на: комментарий от Iron_Bug

Не разу их не использовал irl. В универе про них рассказывали, даже лабы c register писали, но в реальных проектах ни разу не было потребности использовать регистровую память напрямую в с++. А volatile вообще вроде по дефлоту у всех не-констант. Что же могло измениться в С++11?

comp00 ★★★★
()
Ответ на: комментарий от comp00

А вообще, volatile — это MMIO и прочий низкоуровневый треш.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

нет. в отличие от вас - программист :) долгое время занималась «низкоуровневым трэшем». на Гознаке мой софт работает до сих пор. но вам не понять, я думаю.

Iron_Bug ★★★★★
()
Ответ на: комментарий от comp00

Бьярне уже две книги написал, первая отстой редкосный, но полное руководство, вторая читается как хороший детектив.

The C++ Programming Language, 4th Edition by Bjarne Stroustrup (May 19, 2013)

raw string literal: стр 128, 177

Programming: Principles and Practice Using C++ (2nd Edition) Paperback – May 25, 2014

раздел 23.6.1, стр 868

ihanick
()
Ответ на: комментарий от intelfx

извините, неправильно поняла ваш коммент. таки да, не по дефолту, безусловно.

Iron_Bug ★★★★★
()
Ответ на: комментарий от ihanick

у Бьярне есть сайт, там он всяку всячину выкладывает, свежие статьи и просто досужие размышления. но многие его идеи в стандарт не включили. может, в следующем они будут.

Iron_Bug ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.