Я выполняю бенчмаркинг в своем коде, и я пытаюсь выяснить, следует ли использовать стандартную версию хронографа или оригинальную версию Boost.
Я начал использовать стандартный, потому что хотел попробовать, и заметил, что, например, он не предоставляет функции io, такие как хронограф, предоставленный Boost.
Итак, что касается хроно и в целом, следует ли использовать библиотеки Boost или их стандартные библиотеки?C++: std :: chrono or boost :: chrono
5
A
ответ
13
Это зависит от того, чего вы хотите достичь. C++ хроно профи:
- Лучше понятность (чем больше пользователей знают стандартную библиотеку, чем импульс)
- Лучше портативность (в случае, если вы решили использовать C++ 11)
- Может быть, это будет работать быстрее.
- Не добавляйте дополнительные зависимости к проекту.
подталкивание хроы плюсы:
- Работа для C++ 03
- Обеспечивает большую функциональность.
Итак, если вам не нужны дополнительные функции io и не требуется поддержка C++ 03, используйте стандартную библиотеку.
+1 для хорошего обзора, я сам буду использовать дрянные «использовать std :: chrono, когда это возможно, boost :: chrono, когда вам нужно» – bobah
(1) Какая часть интерфейса более понятна в 'std :: chrono', чем в 'boost :: chrono'? (2) 'boost :: chrono' определенно * более * портативный, чем' std :: chrono', поскольку он работает с более широким спектром компиляторов. (3) Не совсем понятно, что вы подразумеваете, заявив, что 'std :: chrono' будет работать быстрее». Нижняя строка выглядит следующим образом: дополнительная зависимость от переносимости и функциональности. –
@IgorR. (1) Потому что вам не нужно читать дополнительную документацию, чтобы понять ее. (2) Если вы уже используете C++ 11, должен быть 'std :: chrono', и для этой архитектуры/компилятора вообще не может быть никакого повышения. (3) Std предоставляется компилятором и обычно использует лучшую реализацию, доступную для этой платформы. Boost может использовать некоторую общую реализацию для некоторых редких/неподдерживаемых компиляторов. –