Ответ "не совсем".
Конечно, как подсказывает @ πάνταῥεῖ, вы можете написать оболочку или наследовать от Eigen-типов и соответственно переписать операторы индексации.В качестве альтернативы вы можете реализовать пользовательский тип Index
, который при преобразовании в Eigen::Index
вычтет 1.
Но оба подхода подвержены ошибкам и, скорее всего, скорее увеличат путаницу, особенно если вы пропустите какой-либо соответствующийчастей.Кроме того, это очень запутает любого программиста C ++, смотрящего на ваш код, поскольку индексирование на основе 0 является наиболее естественным способом в C / C ++ (и во многих языках, синтаксис которых является производным от них, таких как Java, C #, ...)
Наконец, (как это и предлагает @dfri), если вы программируете на C ++, привыкните к индексации на основе 0, это избавит вас от многих проблем в долгосрочной перспективе.