Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template <class T, size_t S = T.size>
- size_t get_size(T t)
- {
- return t.size;
- };
- template <class T, size_t(T::*)() const = &T::size>
- size_t get_size(T t)
- {
- return t.size();
- };
- int main()
- {
- std::string s{ "Hello" };
- size_t s_size = get_size(s); // 5, вызывается метод size()
- struct Struct
- {
- size_t size = 0;
- };
- Struct x{ 10 };
- size_t x_size = get_size(x); // 10, читается поле size
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement