Есть ли в C ++ свободная функция `size (object)`?
Кажется, что большинство людей находят размерstring
они просто используютmy_string.size()
и работает нормально. Ну, я недавно сделал задание для класса, где я сделал ...
if (size(my_string) < 5)
store[counter].setWeight(stoi(my_string));
Вместо....
if (my_string.size() < 5)
store[counter].setWeight(stoi(my_string));
Но, к моему удивлению, мой инструктор, который, как мне кажется, запускает более старый компилятор, не смог запустить эту строку кода. На моем компиляторе это работает в обе стороны, и я не совсем уверен, почему.
Полная программа (выводит 4 для обоих):
#include <string>
#include <iostream>
using namespace std;
int main()
{
string myvar = "1000";
cout << "Using size(myvar) = " << size(myvar) << endl;
cout << "Using myvar.size() = " << myvar.size() << endl;
}
Если кто-то может пролить свет на то, почему мое решение проблемы сработало на моей машине, а не на профессорах? Кроме того, в настоящее время я использую VS2015.