Size: a a a

2021 March 28

ПК

Побитый Кирпич... in pro.cxx
GGsrvg
У кого нибудь есть пример(в открытом доступе) по использованию  sfml?  С помощью  cmake. Хотел попробовать с ним поработать(для себя). Скачал, через гит, написал add_subdirectory потом добавил либы окна, графики и остального, но не запускается.
Установи sfml через vcpkg, подключи с помощью find_package и target_link_libraries
источник

G

GGsrvg in pro.cxx
Побитый Кирпич
Установи sfml через vcpkg, подключи с помощью find_package и target_link_libraries
А если мне нужно будет собрать и запустить на другом пк? Как я делал не получится разве?
источник

ПК

Побитый Кирпич... in pro.cxx
GGsrvg
А если мне нужно будет собрать и запустить на другом пк? Как я делал не получится разве?
Там есть какой то кэш бинарей, но я не пользовался
источник

ПК

Побитый Кирпич... in pro.cxx
Типа собираешь на одном сервере, а потом все с него просто бинари качают
источник

ES

Eyed Shovel in pro.cxx
Побитый Кирпич
Там есть какой то кэш бинарей, но я не пользовался
Его же статической либой можно собрать
источник

m

magras in pro.cxx
Boris Usievich
Странный вывод. Многомерные массивы это естественная структура данных для многих применений.
Конечно. И врапперы прекрасно решают проблему создания нужной абстракции поверх одномерных массивов.
Более того, двухмерный массив удобен только иногда. А в одномерный можно упаковать и диагональную, и треугольную матрицы.
источник

BU

Boris Usievich in pro.cxx
magras
Конечно. И врапперы прекрасно решают проблему создания нужной абстракции поверх одномерных массивов.
Более того, двухмерный массив удобен только иногда. А в одномерный можно упаковать и диагональную, и треугольную матрицы.
Врапперы конечно решают проблемы, но не все. Если создать обычный статический 2D  массив, то с формальной точки зрения стандарта  при конвертации адреса в обычный указатель на первый элемент обращение к элементу 1D массива возможно только в пределах первой строки исходного, а иначе UB 😱.  К счастью форсится это только в constexpr.
источник

ПК

Побитый Кирпич... in pro.cxx
Boris Usievich
Врапперы конечно решают проблемы, но не все. Если создать обычный статический 2D  массив, то с формальной точки зрения стандарта  при конвертации адреса в обычный указатель на первый элемент обращение к элементу 1D массива возможно только в пределах первой строки исходного, а иначе UB 😱.  К счастью форсится это только в constexpr.
Какие проблемы не решают враперы?
источник

BU

Boris Usievich in pro.cxx
А то что я написал не проблема? ну то есть написать код не проблема, и он будет работать, проблема в том, что чисто формально это UB
источник

m

magras in pro.cxx
Boris Usievich
Врапперы конечно решают проблемы, но не все. Если создать обычный статический 2D  массив, то с формальной точки зрения стандарта  при конвертации адреса в обычный указатель на первый элемент обращение к элементу 1D массива возможно только в пределах первой строки исходного, а иначе UB 😱.  К счастью форсится это только в constexpr.
Это именно то о чем я и говорю. Враппер вокруг одномерного массива позволяет работать с ним как с многомерным, не влезая в UB.
источник

BU

Boris Usievich in pro.cxx
и что делать, если исходный массив 2D? Может все-таки надо починить стандарт? :)
источник

ПК

Побитый Кирпич... in pro.cxx
Boris Usievich
А то что я написал не проблема? ну то есть написать код не проблема, и он будет работать, проблема в том, что чисто формально это UB
Ты написал про проблему сишных многомерных массивов, а не про проблему враперов
источник

BU

Boris Usievich in pro.cxx
сюрприз, но C/Fortran/Pascal существуют и иногда таки надо с ними взаимодействоать
источник

m

magras in pro.cxx
Boris Usievich
сюрприз, но C/Fortran/Pascal существуют и иногда таки надо с ними взаимодействоать
Хорошо, по-моему вы утверждали, что blas использует многомерные массивы. Если это так, можете показать конкретный пример?
источник

BU

Boris Usievich in pro.cxx
BLAS (он кстати изначально растет из фортрана) принимает массив как указатель на первый элемент. размеры задаются раздельно.
источник

ПК

Побитый Кирпич... in pro.cxx
Boris Usievich
сюрприз, но C/Fortran/Pascal существуют и иногда таки надо с ними взаимодействоать
Не уверен, но вроде как для этого сишные массивы не обязательны. Разве что какой нибудь кодген их создаёт и заставляет использовать
источник

ПК

Побитый Кирпич... in pro.cxx
Boris Usievich
BLAS (он кстати изначально растет из фортрана) принимает массив как указатель на первый элемент. размеры задаются раздельно.
Ну дак и передавай одномерный
источник

BU

Boris Usievich in pro.cxx
И что делать если он у меня 2D? конвертить в 1D? с точки зрения стандарта получится UB
источник

m

magras in pro.cxx
Boris Usievich
сюрприз, но C/Fortran/Pascal существуют и иногда таки надо с ними взаимодействоать
Ну собственно это и решает проблему взаимодействия с C/Fortran/Pascal, разве нет?
источник

ПК

Побитый Кирпич... in pro.cxx
Boris Usievich
И что делать если он у меня 2D? конвертить в 1D? с точки зрения стандарта получится UB
Не делать 2D сишных массивов, только одномерные + враппер с многомерным доступом
источник