Advertisement
Guest User

Untitled

a guest
Apr 17th, 2014
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. #define QT_NO_CAST_FROM_ASCII
  2. #include <QString>
  3. void func()
  4. {
  5. auto f = [] () -> QString
  6. {
  7. QString a = QStringLiteral("Hello.");
  8. return a;
  9. };
  10. QString b = f();
  11. }
  12.  
  13. 1>example.cpp(7): error C2248: 'QString::QString' : cannot access private member declared in class 'QString'
  14. 1> C:Qt5.1.1includeQtCore/qstring.h(691) : see declaration of 'QString::QString'
  15. 1> C:Qt5.1.1includeQtCore/qstring.h(207) : see declaration of 'QString'
  16.  
  17. #undef QT_NO_CAST_FROM_ASCII // Note the undef!
  18. #include <QString>
  19. void func()
  20. {
  21. auto f = [] () -> QString
  22. {
  23. QString a = QStringLiteral("Hello.");
  24. return a;
  25. };
  26. QString b = f();
  27. }
  28.  
  29. #define QT_NO_CAST_FROM_ASCII
  30. #include <QString>
  31. void func()
  32. {
  33. auto f = [] () -> QString
  34. {
  35. QString a = QLatin1String("Hello."); // Note using QLatin1String() instead.
  36. return a;
  37. };
  38. QString b = f();
  39. }
  40.  
  41. #define QT_NO_CAST_FROM_ASCII
  42. #include <QString>
  43. void func()
  44. {
  45. QString a = QStringLiteral("Hello."); // Note QStringLiteral() used outside the lambda.
  46. auto f = [&a] () -> QString
  47. {
  48. return a;
  49. };
  50. QString b = f();
  51. }
  52.  
  53. #define QT_NO_CAST_FROM_ASCII
  54. #include <QString>
  55. void func()
  56. {
  57. auto f = [] () -> QString
  58. {
  59. QString a = ( []() -> QString
  60. {
  61. enum { Size = sizeof(L"Hello.")/2 - 1 };
  62. static const QStaticStringData<Size> qstring_literal = { { { { (-1) } }, Size, 0, 0, sizeof(QStringData) }, L"Hello." };
  63. QStringDataPtr holder = { qstring_literal.data_ptr() };
  64. const QString s(holder);
  65. return s;
  66. }()
  67. );
  68. return a;
  69. };
  70. QString b = f();
  71. }
  72.  
  73. #define QT_NO_CAST_FROM_ASCII
  74. #include <QString>
  75. void func()
  76. {
  77. auto f = [] () -> QString
  78. {
  79. auto qsl = []() -> QString
  80. {
  81. enum { Size = sizeof(L"Hello.")/2 - 1 };
  82. static const QStaticStringData<Size> qstring_literal = { { { { (-1) } }, Size, 0, 0, sizeof(QStringData) }, L"Hello." };
  83. QStringDataPtr holder = { qstring_literal.data_ptr() };
  84. const QString s(holder);
  85. return s;
  86. };
  87. QString a = qsl();
  88. return a;
  89. };
  90. QString b = f();
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement