xtd (「エクステンド」と発音) は、Microsoft Windows、Apple macOS、Linux、iOS、android (*) 上でコンソール、GUI (WinForms などのフォーム)、および単体テスト アプリケーションを作成するための最新の C++17/20 フレームワークです。
(*) 詳細については、「移植性」を参照してください。
xtd はいくつかのライブラリで構成されています。
xtd.core ライブラリは、システム機能へのアクセスを提供するクラス、インターフェイス、値型の最新の C++17/20 ライブラリです。これは、C++ アプリケーション、コンポーネント、コントロールが構築される基盤です。
xtd.drawing ライブラリには、基本的な GDI+ グラフィックス機能をサポートするタイプが含まれています。子名前空間は、高度な 2 次元およびベクター グラフィックス機能、高度なイメージング機能、および印刷関連および活版印刷サービスをサポートします。子名前空間には、デザイン時のユーザー インターフェイス ロジックと描画を拡張する型も含まれています。
xtd.forms ライブラリには、Microsoft Windows、Apple macOS、および Linux ベースのオペレーティング システムで利用できる豊富なユーザー インターフェイス機能を最大限に活用する Windows ベースのアプリケーションを作成するためのクラスが含まれています。
xtd.tunit ライブラリは、Microsoft.VisualStudio.TestTools.Cpp からインスピレーションを得た、最新の C++17/20 用の単体テスト フレームワークです。
このプロジェクトはオープンソース プロジェクトです。参加する開発者は、自分の時間に合わせて参加します。したがって、実際の日付を修正することは困難です。
しかし、開発の進化を追うことはできます。ステータスを最新の状態に保ちます。
各コミットで、次の構成に対してビルドと単体テストが実行されます。
オペレーティング·システム | デバッグ | リリース |
---|---|---|
Windows (x64) | ||
Windows (x86) | ||
macOS | ||
Ubuntu | ||
iOS (**) | ||
アンドロイド (**) |
(**) xtd.core および xtd.tunit のみ。
GitHub ページへのデプロイ | 状態 |
---|---|
ウェブサイトの展開 | |
最新のリファレンスガイドの展開 |
xtd はカンバン プロジェクトによって管理されるため、未解決の問題の数は非常に多くなる可能性があります。以下の表は、未解決のバグ/質問および機能拡張の数をより明確に示しています。
問題 | 開ける | 閉店 |
---|---|---|
バグ・ユーザーからの質問 | ||
xtd 0.1.0 - 機能強化/開発(*) | ||
xtd 0.1.1 - 機能強化/開発 | ||
xtd 0.2.0 - 機能強化/開発 | ||
xtd 0.3.0 - 機能強化/開発 | ||
xtd 0.4.0 - 機能強化/開発 | ||
xtd 1.0.0 - 機能強化/開発 |
(*) プロジェクト管理がまだ利用できなかったため、xtd 0.1.0 の機能拡張は 1 つだけです。
古典的な最初のアプリケーション「Hello World」。
# include < xtd/xtd >
using namespace xtd ;
auto main () -> int {
console::background_color (console_color::blue);
console::foreground_color (console_color::white);
console::write_line ( " Hello, World! " );
}
または単に
# include < xtd/xtd >
using namespace xtd ;
auto main () -> int {
console::out << background_color (console_color::blue) << foreground_color (console_color::white) << " Hello, World! " << environment::new_line;
}
cmake_minimum_required ( VERSION 3.20)
project (hello_world_console)
find_package (xtd REQUIRED)
add_sources(hello_world_console.cpp)
target_type(CONSOLE_APPLICATION)
「コマンドプロンプト」または「ターミナル」を開きます。プロジェクトが含まれるフォルダーに移動し、次のように入力します。
xtdc run
# include < xtd/xtd >
using namespace xtd ::forms ;
class main_form : public form {
public:
main_form () {
text ( " Hello world (message_box) " );
button1. location ({ 10 , 10 });
button1. parent (* this );
button1. text ( " &Click me " );
button1. click += [] {
message_box::show ( " Hello, World! " );
};
}
private:
button button1;
};
auto main () -> int {
application::run (main_form {});
}
または単に
# include < xtd/xtd >
auto main () -> int {
auto main_form = xtd::forms::form::create ( " Hello world (message_box) " );
auto button1 = xtd::forms::button::create (main_form, " &Click me " , { 10 , 10 });
button1. click += [] { xtd::forms::message_box::show ( " Hello, World! " );};
xtd::forms::application::run (main_form);
}
cmake_minimum_required ( VERSION 3.20)
project (hello_world_forms)
find_package (xtd REQUIRED)
add_sources(hello_world_forms.cpp)
target_type(GUI_APPLICATION)
「コマンドプロンプト」または「ターミナル」を開きます。プロジェクトが含まれるフォルダーに移動し、次のように入力します。
xtdc run
# include < xtd/xtd >
using namespace xtd ;
using namespace xtd ::tunit ;
namespace unit_tests {
class test_class_ (hello_world_test) {
void test_method_ (create_string_from_literal) {
auto s = string { " Hello, World! " };
valid::are_equal ( 13 , s. size ());
assert::are_equal ( " Hello, World! " , s);
}
void test_method_ (create_string_from_chars) {
auto s = string { ' H ' , ' e ' , ' l ' , ' l ' , ' o ' , ' , ' , ' ' , ' W ' , ' o ' , ' r ' , ' l ' , ' d ' , ' ! ' };
valid::are_equal ( 13 , s. size ());
string_assert::starts_with ( " Hello, " , s);
string_assert::ends_with ( " World! " , s);
}
};
}
auto main () -> int {
return console_unit_test (). run ();
}
またはヘルパーなしで
# include < xtd/xtd >
using namespace xtd ;
using namespace xtd ::tunit ;
namespace unit_tests {
class hello_world_test ;
auto hello_world_test_class_attr = test_class_attribute { " unit_tests::hello_world_test " };
class hello_world_test : public test_class {
test_method_attribute create_string_from_literal_attr { " create_string_from_literal " , * this , &hello_world_test::create_string_from_literal};
void create_string_from_literal () {
auto s = string { " Hello, World! " };
valid::are_equal ( 13 , s. size ());
assert::are_equal ( " Hello, World! " , s);
}
test_method_attribute create_string_from_chars_attr { " create_string_from_chars " , * this , &hello_world_test::create_string_from_chars};
void create_string_from_chars () {
auto s = string { ' H ' , ' e ' , ' l ' , ' l ' , ' o ' , ' , ' , ' ' , ' W ' , ' o ' , ' r ' , ' l ' , ' d ' , ' ! ' };
valid::are_equal ( 13 , s. size ());
string_assert::starts_with ( " Hello, " , s);
string_assert::ends_with ( " World! " , s);
}
};
}
auto main () -> int {
return console_unit_test (). run ();
}
cmake_minimum_required ( VERSION 3.20)
project (hello_world_test)
find_package (xtd REQUIRED)
add_sources(hello_world_test.cpp)
target_type(TEST_APPLICATION)
「コマンドプロンプト」または「ターミナル」を開きます。プロジェクトが含まれるフォルダーに移動し、次のように入力します。
xtdc run
マインスイーパ (Windows 上)
ゲーム・オブ・ライフ (macOS 上)
xtdc-gui - 新しいプロジェクトを作成する (macOS 上)
電卓 (Ubuntu 上)
ストップウォッチ (Windows 上)
ペイント (Ubuntu 上)
著者ファイルには、連絡先情報とともに貢献者がリストされています。貢献する場合は、自分自身をリストに追加してください。
あなたの貢献を歓迎します。
あなたのフィードバックはプロジェクトの発展にとって重要です。
次のプロジェクトは、初心者が最初に貢献する方法を簡素化し、ガイドすることを目的としています。初めて貢献したい場合は、以下のプロジェクトをチェックしてください。
最初の貢献
これで、xtd に最初のコントリビュートを行う準備が整いました。
© 2024 ガンマソフト。