Visual C++で利用されるSTLがオープンソースとなったようです

普段はあまりコードの話題に触れないのですが、ちょっと気になる話題だったので取り上げてみることにします。

何を取り上げるのかというと、Visual StudioC++のコードを書く際によく利用される、STLというライブラリがオープンソースとなったことです。

昨今、マイクロソフトオープンソースプロジェクトへの寄与度を高めていくという施策をとっていますが、その一環なのかと思われます。

https://github.com/microsoft/STL

f:id:mohessu:20190921013224p:plain

このSTLというのは、一般によく利用されるライブラリとなっています。

例えば文字列を表すためのstringクラスなどもSTLに入ってきますね。
マイクロソフトSTLC++の標準化への準拠度も高く、Windows環境でC++を利用する際にはかなりの確率で利用しているものと思われます。

オープンソースといえば、気になるのはライセンス。
ライセンス条項は以下のURLにある内容となっています。
Apache License v2.0 with LLVM Exceptionsというライセンスのもとに発行されているとのことです。
LLVM Exceptionsは聞いたことがなかったのですが、原文は以下の通り。

https://github.com/microsoft/STL/blob/master/LICENSE.txt

f:id:mohessu:20190921013656p:plain

組み込まれたソフトへの準拠に関する内容となっているようですね。

以下のMSが出した本件のアナウンスでは、なぜこのライセンス形態をとったのか、理由が述べられています。

https://devblogs.microsoft.com/cppblog/open-sourcing-msvcs-stl/

f:id:mohessu:20190921013608p:plain

原文を意訳するとビジネスに影響を与えないようにするためにこれを採用した。コンパイルして組み込んだ場合は、コンパイル済みのソフト側で必ずしも利用を宣言しなくてよい。というようなことが書いてあるようです。

これで、オープンソースとなった後も、利用者は今まで同様に使えるというわけですね。

一点注意しておきたいのは、日本のソフトウェアベンダーの中にはOSSの利用を申請性にしているケースがあるということでしょうか。OSSとなったことで、社内的に利用を通知する必要が出てくるなどが考えられます。

Visual C++を会社で利用されている方は、念のために社内ルールもチェックしておくとよいのかと思います。

音楽:THE ETERNITY DANCE