#include <vector>
#include <iostream>
#include <algorithm>
#include <ctype.h>

template <typename T>
bool isLowerCased(const T& elem)
{
    return std::all_of(elem.begin(), elem.end(), ::islower);
}

bool isLowerCased(char c)
{
    return ::islower(c);
}

bool isLowerCased(const char* cstr)
{
    return isLowerCased(std::string(cstr));
}


int main()
{
    std::cout << std::boolalpha
              << isLowerCased(std::string("something")) << '\n'
              << isLowerCased(std::vector<char>{'a','b','c'}) << '\n'
              << isLowerCased("something") << '\n'
              << isLowerCased('a') << '\n';

    std::cout << isLowerCased("sometDFShing") << '\n'
              << isLowerCased('C') << '\n';
}
