thedeemon: (vonny tropics)
[personal profile] thedeemon
Компайл-тайм рефлексия курильщика:
https://habrahabr.ru/post/344206/ ( С++14 )

Компайл-тайм рефлексия здорового человека:
import std.stdio;

struct complicated_struct {
    int i;
    short s;
    double d;
    uint u;
}

void main() {
    auto s = complicated_struct(1,2,3,4);
    foreach(m; __traits(allMembers, complicated_struct))
        writeln(m, " = ", __traits(getMember, s, m));
}

Выводит:
i = 1
s = 2
d = 3
u = 4

Короче, вот мой патентованный универсальный алгоритм по применению С++14 и С++17:
Если у вас есть С++ и вам нужна компайл-тайм интроспекция, хитрые преобразования типов, тайп-левел арифметика и выполнение кода, прочие компайл-тайм навороты, то выкидиваете нафиг С++ и берете D. Код становится простым и коротким, волосы шелковистыми.
Если у вас есть С++ и вам не нужны эти премудрости с типами и метапрограммированием, а нужен тупой быстрый код, молотящий данные, то выкидываете нафиг С++ и берете Раст.

Date: 2017-12-09 08:17 am (UTC)
perdakot: (Default)
From: [personal profile] perdakot
В Расте же нельзя шаблоны числами параметризовать.

Date: 2017-12-09 05:12 pm (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Мало того, что быстрый, так еще и надежный.

Profile

thedeemon: (Default)
Dmitry Popov

December 2025

S M T W T F S
 12 3456
789101112 13
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 25th, 2026 03:07 pm
Powered by Dreamwidth Studios