Выражение C # Linq в переполнении стека

Я думаю о создании библиотеки Linq в C ++, чтобы делать такие вещи, как theVector.select( ... ), theVector.where(...),
Мне интересно, есть ли способ расширить класс C ++, который уже был объявлен (например, std::vector ) Я хотел бы иметь возможность сделать:

theVector.select(...)

вместо

myClass( theVector ).select(...)

Есть ли способ это сделать? как в C # ?

Спасибо,

0

Решение

Сообщество C ++, похоже, движется к функциям, не являющимся членами для этого типа «полезности, не имеющей прямого отношения к классу под рукой». например если у тебя есть std::vector v; ты всегда мог v.begin(), но теперь вы также можете std::begin(v), Это будет означать что-то вроде select(theVector)...,

Но, возможно, вы захотите поддержать объединения в какой-то момент, поэтому я бы

select(...).from(theVector).join(theMap, ...).where(...)
// or
select(...).from(theVector).order_by(...)
// etc.
1

Другие решения


По вопросам рекламы [email protected]