work on CRTP

master
polymurph 4 years ago
parent bb70c272ee
commit 0a12b12eb9

@ -0,0 +1,24 @@
cpp_src = $(wildcard *.cpp)
cpp_src += $(wildcard ./utils/*.cpp)
cpp_src += $(wildcard ./driver/*.cpp)
cpp_obj = $(cpp_src:.cpp=.o)
c_obj = $(c_src:.c=.o)
CC = g++
CFLAGS = -Wall -pedantic -li2c
LDFLAGS =
EXEC = runtest
all : $(EXEC)
$(EXEC): $(cpp_obj) $(c_obj)
$(CC) -o $@ $^ $(LDFLAGS)
clean:
rm -rf $(c_obj) $(cpp_obj) $(EXEC)
clear
cleanall:
rm -rf $(c_obj) $(cpp_obj) $(EXEC)
clear

@ -0,0 +1,14 @@
#include <iostream>
struct Shape
{
};
int main(void)
{
std::cout << "CRTP example" <<std::endl;
return 0;
}

Binary file not shown.

@ -0,0 +1,5 @@
Curiously recurring template pattern (CRTP)
https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern
https://www.youtube.com/watch?v=7-nHdQjSRe0&t=480s

@ -0,0 +1,28 @@
#include <memory>
struct Pin
{
virtual void set(bool logic);
virtual void toggle();
virtual bool get(void);
};
// https://www.modernescpp.com/index.php/c-is-still-lazy
// curiously recurring template pattern
template <typename T>
struct PinCRTP : public Pin
{
virtual override set(bool logic)
{
static_cast<>
}
};
int main(void)
{
return 0;
}
Loading…
Cancel
Save