private:
void vertex_shader(const std::string &);
void fragment_shader(const std::string &);
void attribute(uint, const std::string &);
private:
void vertex_shader(const std::string &);
void fragment_shader(const std::string &);
void attribute(uint, const std::string &);
int get_param(GLenum param) const;
bool get_linked() const { return linked; }
std::string get_info_log() const;
int get_param(GLenum param) const;
bool get_linked() const { return linked; }
std::string get_info_log() const;