Linked by Thom Holwerda on Thu 31st May 2012 21:41 UTC
Legal And thus, it ends. Despite a never-ending stream of doom and gloom from Oracle/Microsoft-funded 'pundits' regarding Google and Android (six hundred billion trillion gazillion eurodollars in damages!!1!), judge Alsup has just squashed all of Oracle's chances with a ruling that is good news for those of us who truly care about this wonderful industry: APIs are not copyrightable. Alsup: "To accept Oracle's claim would be to allow anyone to copyright one version of code to carry out a system of commands and thereby bar all others from writing their own different versions to carry out all or part of the same commands. No holding has ever endorsed such a sweeping proposition." Supreme Court, Ellison?
Permalink for comment 520310
To read all comments associated with this story, please click here.
cyrilleberger
Member since:
2006-02-01

Easy:

template<class _T_> bool rangeCheck(const _T_& obj, int fromIndex, int toIndex);

is not copyrightable. But the body of:

template<class _T_> bool rangeCheck(const _T_& obj, int fromIndex, int toIndex)
{
if(fromIndex > toIndex) {
std::cerr << "fromIndex(" << fromIndex
<< ") > toIndex(" << toIndex
<< ")" << std::endl;
}
if(fromIndex < 0)
{
std::cerr << "Index out of bound." << std::endl;
}
if(toIndex > obj.size())
{
std::cerr << "Index out of bound." << std::endl;
}
}

is copyrightable.

same rule apply if you have an inline variant of the templated function in your header:

inline bool rangeCheck(const std::list<int>& obj, int fromIndex, int toIndex) { ... }

In other word, do not confuse headers with APIs. APIs is only the functions name and its parameters. And code in a header does not magically become an API, it remains code.

(My appologies to OSNews for exposing them to Oracle copyright trolling by inserting very valuable Oracle copyrighted material in my comment)

Reply Parent Score: 9