投稿者 tel | 2010年11月9日

ソースコードのHTML変換 その2

ソースコードのHTML変換でC/C++のテンプレートとかインクルードとかの部分がタグとみなされて処理されてなかったので修正した。ついでにデフォルトで枠をつけることにした。

#ifndef _IMAGE_H
#define _IMAGE_H

#include "format.h"

template<typename T>
class Image {
private:
    Image(const Image &);
    Image &operator=(const Image &);
public:
    T **lines;
    int width;
    int height;
    
    typedef T type;
    static const int depth = sizeof(type) * 8;
    
    static int GetDepth() {
        return sizeof(T);
    }
    
    Image() : lines(0), width(0), height(0) {}
    virtual ~Image() { Release(); }
    
    void Create(int w, int h) {
        if(w != width || h != height) {
            Release();
            lines = new T *[h];
            lines[0] = new T [w * h];
            for(int i = 1; i < h; i++) {
                lines[i] = &lines[0][w * i];
            }
        
            width = w;
            height = h;
        }
    }

    void Create(const Image<T> &image) {
        Create(image.width, image.height);

        for(int i = 0; i < image.width * image.height; i++) {
            lines[0][i] = image.lines[0][i];
        }
    }

    void Release() {
        if(lines) {
            delete [] lines[0];
            delete [] lines;
            lines = 0;
        }
        width = height = 0;
    }

    typedef T* iterator;
    iterator begin() { return *lines }
    iterator end() { return &lines[0][width * height - 1] }
};

typedef Image<RGB> Image24;
typedef Image<RGBA> Image32;
typedef Image<unsigned char> Image8;

#endif // _IMAGE_H

ちゃんと変換された。
ソースコード変換


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。