float <-> альтернатива преобразования std :: string?

есть ли альтернатива atof , strtod , lexical_cast , stringstream или sprintf ?

то есть :

  1. быстро
  2. Способ C ++ ( std :: string вместо char * )
  3. безопасный (без риска переполнения буфера)
  4. допустимый (возврат NaN, если преобразование невозможно)
  5. нет внешней библиотеки (независимой)

Я предпочитаю больше похожую на эту , простую функцию, оптимизированную и точную

причину:

  • atof и strtod - это функция C, и они не возвращают NaN в случае сбоя, я предпочитаю работать с std :: string , поэтому я просто спрашиваю, есть ли у кого-нибудь уже пишу некоторую оболочку для std :: string , которую я могу использовать (если вы не возражаете).
  • lexical_cast имеет зависимость boost
  • str входящий поток медленный
  • sprintf имеет риск переполнения буфера и его функция C

8
задан Community 23 May 2017 в 12:03
поделиться