LINUX.ORG.RU

Ответ на: комментарий от CYB3R

Можешь создать структуру

+1.
Сейчас под рукой нет компа проверить, сам с такой задачей не сталкивался, но я так понимаю будут работать мат. операторы со структурой, занаследованной от basic type (скажем, от double), в простом вапи же пропишешь транслировать в float128, см:
https://wiki.gnome.org/Projects/Vala/LegacyBindings#Simple_Types

Tayler ★★ ()
Ответ на: комментарий от backbone

Не добавят. Ибо ненужно. Но спросить в мэйлинг-листе, как грамотно реализовать такую штуку не вредно.

CYB3R ★★★★★ ()
Ответ на: комментарий от Tayler

Супер! Решение работает!

// test128float.vala
void main () {
	stdout.printf ("%lu\n", sizeof(MyDouble128));

	MyDouble128 d1 = 16.0;
	stdout.printf ("%f", d1 * d1);

}
public struct MyDouble128 : double {
}

// float128type.h
typedef long double double128;
$ valac --pkg=float128type --vapidir=. -C test128float.vala && cc -I. `pkg-config --cflags glib-2.0` test128float.c `pkg-config --libs glib-2.0` && ./a.out
16
256.000000
backbone ★★★★★ ()
Последнее исправление: backbone (всего исправлений: 1)
Ответ на: комментарий от backbone

А вот скажи - обязательно компилить через С или можно както напрямую? Я попробовал напрямую:

valac --pkg=float128type --vapidir=. --includedir=. -v test128float.vala

Но у меня valac не предает каталог "." gcc с последующими проблемами поиска заголовка.

cvv ★★★★★ ()
Ответ на: комментарий от cvv

Скинь все свои файлы, команды которые ты запускаешь и их вывод.

CYB3R ★★★★★ ()
Ответ на: комментарий от cvv

Уже подсказали про опции valac, но вообще CMake удобен, чтобы с инсталяторами, тестами и прочим.

backbone ★★★★★ ()
Ответ на: комментарий от Tayler

Помогло. Но почему не сработал --includedir=. ???

cvv ★★★★★ ()
Ответ на: комментарий от CYB3R

Спросил. Сказали что нету потому что их нету в GLib в GType. Могут рассмотреть реализацию отдельным пакетом. Также посоветовали постучать в gtk-list.

cvv ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.