LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

vector<char, 4> и vector<char, 8>

Это типы, создаваемые по месту.

Так и в CL можно

(defmacro vector-t (elem-type size)
  (let (name (symbolicate 'vector- elem-type '- size))
     `(or (find-class ,name)
          (defclass ,name (vector) ())
          (defmethod initialize-instance ((,name ,name) &rest args)
              (make-array ,size :element-type ,elem-type :adjustable nil)))))

(defmethod test ((arr-int4 #.(vector-t integer 4)))
  ...)

Исходная версия monk, :

vector<char, 4> и vector<char, 8>

Это типы, создаваемые по месту.

Так и в CL можно

(defmacro vector-t (elem-type size)
  (let (name (symbolicate 'vector- elem-type '- size))
     `(or (find-class ,name)
          (defclass ,name (vector) ())
          (defmethod initialize-instance ((,name ,name) &rest args)
              (make-array ,size :element-type ,elem-type :adjustable nil)))))

(defmethod test ((arr-int4 #.(vector integer 4)))
  ...)