Size: a a a

2020 May 09

CD

Constantine Drozdov in pro.cxx
Valentin Kornienko
Что можно посмотреть?
Очень странно, что не может вычислить 36 строку на компайл-тайме
проблема в вызывающем logDebugEndl, а его нет в примере
источник

CD

Constantine Drozdov in pro.cxx
Valentin Kornienko
https://pastebin.com/WWTFCwH9
Вопрос. Один и тот-же код. Собираю GCC 8.3.1 и MSVC2019. GCC сборка проходит нормально, MSVC- вываливаюсь с ошибками:
D:\1-Controllers\1-Diploma\Firmware\Firmware\src\logger\logger_service.hpp(36): error C2131: expression did not evaluate to a constant
 D:\1-Controllers\1-Diploma\Firmware\Firmware\src\logger\logger_service.hpp(36): note: failure was caused by a read of a variable outside its lifetime
 D:\1-Controllers\1-Diploma\Firmware\Firmware\src\logger\logger_service.hpp(36): note: see usage of '_toLog'
 D:\1-Controllers\1-Diploma\Firmware\Firmware\src\graphics\gs_platform_layer.cpp(201): note: see reference to function template instantiation 'void Logger::logDebugEndl<std::basic_string<char,std::char_traits<char>,std::allocator<char>>>(TToLog &&)' being compiled
         with
         [
             TToLog=std::basic_string<char,std::char_traits<char>,std::allocator<char>>
         ]
D:\1-Controllers\1-Diploma\Firmware\Firmware\src\logger\logger_service.hpp(37): error C2131: expression did not evaluate to a constant
 D:\1-Controllers\1-Diploma\Firmware\Firmware\src\logger\logger_service.hpp(36): note: failure was caused by a read of a variable outside its lifetime
 D:\1-Controllers\1-Diploma\Firmware\Firmware\src\logger\logger_service.hpp(36): note: see usage of '_toLog'
D:\1-Controllers\1-Diploma\Firmware\Firmware\src\logger\logger_service.hpp(39): error C2079: 'str' uses undefined class 'std::array<char,320>'
D:\1-Controllers\1-Diploma\Firmware\Firmware\src\logger\logger_service.hpp(40): error C2661: 'std::to_chars': no overloaded function takes 2 arguments
D:\1-Controllers\1-Diploma\Firmware\Firmware\src\logger\logger_service.hpp(40): error C2119: '<structured binding>': the type for 'auto' cannot be deduced from an empty initializer
D:\1-Controllers\1-Diploma\Firmware\Firmware\src\logger\logger_service.hpp(40): error C3617: initializers of structured bindings must be of array or non-union class type; type 'int' is not permitted
читайте внимательнее
note: failure was caused by a read of a variable outside its lifetime
источник

VK

Valentin Kornienko in pro.cxx
Кажется разобрался
источник

VK

Valentin Kornienko in pro.cxx
Спасибо!
источник

VF

Vitaly Farmov in pro.cxx
Valentin Kornienko
Что можно посмотреть?
Очень странно, что не может вычислить 36 строку на компайл-тайме
А зачем вам вообще аргумент в функции IsStringType?
источник

VK

Valentin Kornienko in pro.cxx
Vitaly Farmov
А зачем вам вообще аргумент в функции IsStringType?
понять, надо -ли вызывать std::to_chars для переданного аргумента
источник

CD

Constantine Drozdov in pro.cxx
Vitaly Farmov
А зачем вам вообще аргумент в функции IsStringType?
value based metaprog, это же нью мета
источник

t

three hundred bucks in pro.cxx
Всем привет, подскажите пожалуйста, как уменьшить вес экзешника который выходит из Eclipse, 14 мб весит хеллоу ворлд.
Компилятор mingw. При билде в консоли пишет:
g++ -O2 -g -Wall -fmessage-length=0   -c -o qq.o qq.cpp
g++ -o qq.exe qq.o
Как отключить все ненужное?
upd.
Прошу прощения, увидел про чат новичков, спрошу там.
источник
2020 May 10

AN

Alexander N in pro.cxx
Я таргетю винду, но юзаю QtCreator + CMake + VS(компилер) полагаю флаг /permissive не задан по дефолту там? Надо будет проверить наверное
источник

v

vehlwn in pro.cxx
Alexander N
Я таргетю винду, но юзаю QtCreator + CMake + VS(компилер) полагаю флаг /permissive не задан по дефолту там? Надо будет проверить наверное
Нет. Педантик в гцц тоже выключен.
источник

AN

Alexander N in pro.cxx
Я так понял это вырубает расширения всякие левые?
источник

AN

Alexander N in pro.cxx
Педантик в gcc по крайней мере это делает
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Alexander N
Я так понял это вырубает расширения всякие левые?
Да
источник

IZ

Ilia Zviagin in pro.cxx
Ivan
Вообще плохо наследоваться от std контейнеров. Не понимаю почему они до сих пор не final
Это домыслы, наследуется на здоровье
источник

IZ

Ilia Zviagin in pro.cxx
Denis Chernikov
А можно обоснования, пожалуйста? (Я недостаточно просвещён в причинах, простите)
Обоснований нет, просто некоторые глупые люди полагают, что если у класса нет виртуальных методов,в частности, нет виртуального деструктора, то от него нельзя наследоваться.

Это не так, можно.
источник

IZ

Ilia Zviagin in pro.cxx
Denis Chernikov
А какая острая нужда в этом запрете?
Нет острой нужны в этом запрете.
источник

I

Ivan in pro.cxx
Ilia Zviagin
Это домыслы, наследуется на здоровье
Домыслы, что нет виртуальных деструкторов? Такое наследование чревато последствиями.
источник

I

Ivan in pro.cxx
Это error-prone код получится. Когда сильно хочется, конечно, можно, но такой костыль должен быть очень оправдан комментариями вокруг, и по-другому было сделать никак нельзя.
источник

PK

Pavel Kazakov in pro.cxx
Ivan
Домыслы, что нет виртуальных деструкторов? Такое наследование чревато последствиями.
пример последствий?
источник

PK

Pavel Kazakov in pro.cxx
"ходить на улицу чревато падением метеорита на голову"
источник