xtd 0.2.0
assembly_version_attribute.hpp
Go to the documentation of this file.
1
3#pragma once
4#include "../attribute.hpp"
5#include "../iequatable.hpp"
6
9#if !defined(__XTD_ASSEMBLY_VERSION__)
10# define __XTD_ASSEMBLY_VERSION__ "1.0.0"
11#endif
13
15namespace xtd {
17 namespace reflection {
33 class core_export_ assembly_version_attribute final : public xtd::attribute, public xtd::iequatable<xtd::reflection::assembly_version_attribute> {
34 public:
38 explicit assembly_version_attribute(const string& version);
40
43 assembly_version_attribute(const string& version, const object& executing_assembly);
45
49 const string& version() const noexcept;
51
53
58 bool equals(const object& obj) const noexcept override;
62 bool equals(const assembly_version_attribute& other) const noexcept override;
63
66 xtd::size get_hash_code() const noexcept override;
68
69 protected:
70 xtd::sptr<object> get_type_id() const noexcept override;
71
72 private:
73 string version_;
74 };
75 }
76}
77
79xtd::sptr<xtd::reflection::assembly_version_attribute>& __assembly_version_attribute__();
81
97#define assembly_version_(version) \
98 xtd::reflection::assembly_version_attribute __assembly_version_attribute {xtd::string(version) == "" || xtd::string(version) == "*" ? __XTD_ASSEMBLY_VERSION__ : version, xtd::object()}
Represents the base class for custom attributes.
Definition attribute.hpp:25
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.hpp:22
Specifies the version of the assembly being attributed.
Definition assembly_version_attribute.hpp:33
assembly_version_attribute(const string &version)
Initializes a new instance of the xtd::reflection::assembly_version_attribute class.
const string & version() const noexcept
Gets version information.
The xtd::shared_ptr_object is a shared pointer as std::shared_ptr.
Definition shared_ptr_object.hpp:30
Represents the version number of an assembly, operating system, or the xtd. This class cannot be inhe...
Definition version.hpp:114
#define core_export_
Define shared library export.
Definition core_export.hpp:13
size_t size
Represents a size of any object in bytes.
Definition size.hpp:23
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10