Я использовал более «современные» C++-конструкции некоторое время, но вроде поверхностно и не везде. Я ищу проекты с открытым исходным кодом для изучения, которые являются хорошими примерами современного использования C++ и STL.Примеры «современного C++» в действии?
Такие вещи, как то, что предлагается в «Эффективном STL» Мейера, например, чтобы избежать циклов for
и заменить их более функциональными конструкциями, используя функции boost :: bind и boost :: function и т. Д. Они по-прежнему кажутся немного неестественными для меня, и когда мне нужно что-то сделать быстро и работать, я, как правило, возвращаюсь к libc и string.h (у вас может быть мой strtok, когда вы вытаскиваете его из моих холодных, мертвых рук).
Тем не менее, у меня также был положительный опыт поиска того, что было бы радикальным изменением, потому что я использовал эти конструкции или смог реализовать что-то только с несколькими строками кода, потому что имел право операторов и функторов. Кроме того, я недавно уделял больше внимания параллелизму, и поэтому для меня это становится еще более важным.
Можете ли вы порекомендовать несколько примеров хорошо написанных проектов с открытым исходным кодом, которые сильно используют STL и другие современные методы C++, которые я мог бы изучить? Мне особенно интересен код приложения, просмотр источников Boost был полезен, но по необходимости он очень общий, потому что это код библиотеки.
Меня интересуют проекты среднего и крупного размера, по крайней мере, несколько десятков тысяч линий. Довольно легко найти примеры длиной в несколько сотен строк, но это не слишком полезно.
Могу ли я забрать ваш strtok(), но дать вам strtok_r() взамен? Это поточно-безопасный и повторный. –
Я отказался от strtok, когда написал класс токенизатора, который возвратил const_iterator из метода begin(), чтобы позволить мне перебирать токены. –
Строка Boost Algo, Regex, Spirit, Xpressive (и даже Tokenizer, если вы несчастны) будет есть 'strok()' alive. :) – jfs