Skip to content
  • hjk's avatar
    Relax use of QT_NO_CAST_FROM_ASCII to QT_RESTRICTED_CAST_FROM_ASCII · 82a523f6
    hjk authored
    
    
    This is an opt-in trade-off between type safety and user
    code convenience.
    
    QT_NO_CAST_FROM_ASCII is highly beneficial to avoid unintended
    conversions from 8 bit data with potentially "unsuitable"
    encodings to QString. However, it has the undesirable side-effect
    to require user code to wrap character and string literals
    in QLatin1Char(...) and QLatin1String(...) or use similar
    construction, cluttering the code significantly.
    
    QT_RESTRICTED_CAST_FROM_ASCII macro works almost as
    QT_NO_CAST_FROM_ASCII, except that it enables the QChar(char)
    constructor and adds an additional QString(const char (&ch)[N])
    constructor that matches C++ string literals, but no arbitrary
    character pointers.
    
    This avoids a significant share of the need to clutter the
    user code by only a slight relaxation of the type-safety.
    
    Change-Id: I64e0430bb1352edcedf7e19ee25c16408727084c
    Reviewed-by: default avatarOrgad Shaneh <orgads@gmail.com>
    Reviewed-by: default avatarEike Ziller <eike.ziller@theqtcompany.com>
    82a523f6