恶露是什么颜色的| 内推是什么意思| 检察长什么级别| 虬结什么意思| 莲子心泡水喝有什么功效和作用| 12.6是什么星座| 嗓子疼吃什么药好得快| 吃了饭胃胀是什么原因| 血常规一般查什么病| 胰腺不好有什么症状| 白羊座男和什么星座最配| 海参是补什么| 9月8号是什么星座| 还珠格格什么时候上映的| cpap是什么意思| 司局级是什么级别| 阿莫西林不能和什么一起吃| 女性什么时候排卵| 禁的拼音是什么| 亦木读什么| 代谢不好是什么原因| 生命是什么意思| 什么样的白带是怀孕了| 黑蛇是什么蛇| kfc是什么| 误机是什么意思| 鳜鱼是什么鱼| 缘起缘灭是什么意思| 眼睛晶体是什么| 什么是药品| 中午12点到1点是什么时辰| 谷氨酰转肽酶高是什么原因| 本科属于什么学位| 转氨酶异常有什么症状| 尿白蛋白高是什么原因| 戊是什么生肖| 如厕什么意思| 女人做什么好| 酸西地那非片是什么药| 糖尿病吃什么水果好| 多吃火龙果有什么好处和坏处| 梦见蛇咬我是什么意思| 子宫内膜2mm说明什么| 坐班是什么意思| 8月23号是什么星座| 打呼噜的原因是什么| 正印代表什么意思| 风水宝地是什么生肖| 什么是鬼压床| 胆囊切除后需要注意什么| 酸奶能做什么美食| 眼皮水肿是什么原因引起的| 甲壳虫吃什么食物| 乳清粉是什么| 什么是比特币| 不义之财是什么意思| 月经前腰疼的厉害是什么原因| 牙科属于什么科| 子虚乌有是什么意思| 四环素片主要治什么病| 什么茶女人长期喝最好| 呋喃硫胺片治什么病| 手指甲没有月牙是什么原因| nibpdia过高是什么意思| 吃什么能增肥最快| 血氨低是什么原因| 一级护理是什么意思| 降尿酸吃什么药| 酪氨酸酶是什么东西| 虎头什么尾| 什么的大山| 羽毛球拍什么材质的好| 不明原因发烧挂什么科| rhd血型阳性是什么意思| 泰坦尼克号女主角叫什么| 为什么会得干眼症| 头疼头晕挂什么科| 崩盘是什么意思| 胎心监护是检查什么| 3月14号是什么星座| 梦到鞋子是什么意思| 山茶花是什么颜色| 顶臀径是指什么| 喝杨梅酒对身体有什么好处| 练深蹲有什么好处| 沉淀是什么意思| 山昆读什么| 肚子拉稀像水一样是什么情况| 胃炎不能吃什么食物| 七星瓢虫吃什么| 孩子腿疼是什么原因| 荷尔蒙是什么东西起什么作用| 手口足吃什么药| 阿尔山在内蒙古什么地方| 1968年什么时候退休| 文胸是什么意思| 1936年是什么年| 蜂蜜有什么好处| 一百万存款算什么水平| 王晶为什么不娶邱淑贞| 三个女是什么字| 二次元是什么| 35岁属相是什么生肖| 结甲是什么病| 伟五行属什么| wbc是什么意思| 什么是寓言故事| cpr是什么| 爱而不得是什么感觉| esr是什么| 紧急避孕药对身体有什么伤害| 脚痒用什么药膏最有效| 纯阳之人有什么特征| 无期是什么意思| 宫颈炎是什么原因引起的| 耳道发炎用什么药| 单人旁的字和什么有关| 盗汗是什么| 月经是黑色的是什么原因| 什么情况下吃奥司他韦| 鬼迷日眼是什么意思| 凉茶是什么茶| co是什么意思| 尿隐血挂什么科| 胰腺不好吃什么食物好| 银梳子梳头有什么好处| 乙肝小三阳是什么| 保护眼睛用什么眼药水| 胸骨突出是什么原因| 卤牛肉用什么部位| 小乌龟吃什么食物| 缺钾会出现什么症状| 梦见自己数钱什么预兆| 小白龙叫什么名字| 84年属什么生肖| acl医学上是什么意思| 为什么打死不吃骡子肉| 黄历中的入宅是什么意思| 狮子是什么生肖| fancl是什么品牌| clot什么牌子| 吃什么能快速减肥| 左下眼皮跳是什么原因| 下面瘙痒用什么药| 预防脑梗吃什么药| 霉菌用什么药效果好| 孕妇什么时候做nt| tim是什么| 补体c1q偏高说明什么| 红润润的什么| 子宫肌腺症是什么病| 凉皮用什么做的| 大泽土是什么生肖| 久之的之是什么意思| 怀孕做nt检查什么| 祸从天降是什么生肖| 贝壳是什么垃圾| 隐睾是什么意思| 吃什么好消化| 天秤座什么象| 感冒吃什么水果好| 元老是什么意思| 双签是什么意思| 重阳节又称什么节| 高岗为什么自杀| 黑色上衣配什么颜色的裤子| 撇嘴表情什么意思| 异禀是什么意思| 过期牛奶可以做什么| 阿甘正传珍妮得了什么病| 农历六月六是什么节日| 备孕喝苏打水什么作用| 慢性胃炎可以吃什么水果| hpv亚临床感染是什么意思| 吃红薯有什么好处和坏处| 脸上突然长痣是什么原因| 门口放什么植物好风水| 男性结扎是什么意思| 什么是性冷淡| 艾迪生病是什么病| 623是什么意思| 中国女人裹脚是从什么时候开始| 牙齿为什么会掉| omega是什么牌子的手表| 圆寂为什么坐着就死了| 江西景德镇有什么好玩的地方| lime是什么颜色| 对口升学什么意思| 胰管扩张是什么意思| 不免是什么意思| 取环后吃什么恢复子宫| 严重脱发是什么病先兆| 尿道感染是什么原因引起的| 口臭去医院挂什么科室看病| 什么减肥药最管用| 生猴子是什么意思| 同仁是什么意思| 愿力是什么意思| 怀孕肚皮痒是什么原因| 武汉都有什么大学| 芈月传芈姝结局是什么| 存款准备金率下调意味着什么| 什么药一吃就哑巴了| 英姿的动物是什么生肖| 麦芒是什么| 什么是感恩| 下午三点多是什么时辰| 孤辰是什么意思| 白带发绿是什么原因| 行李为什么叫行李| 右派是什么意思| 懈怠是什么意思| 拜谒是什么意思| 前置胎盘是什么原因引起的| 同学过生日送什么礼物好| 中元节是什么节| 蟋蟀用什么唱歌| 临字五行属什么| 白斩鸡是什么意思| 今年88岁属什么生肖| 1935年属什么生肖| 非食健字是什么意思| 口什么腹什么| 寂寞难耐是什么意思| 下肢血液循环不好吃什么药| 炖排骨放什么调料| 巴子是什么意思| 小孩放臭屁是什么原因| 肝火吃什么药| 为什么会莫名其妙流鼻血| 全腹部ct平扫主要检查什么| 生姜水洗头有什么好处| 什么是阴虚火旺| 堕胎是什么意思| 神经痛吃什么药好| 三伏天吃什么最好| 医保是什么意思| 有福气是什么意思| 什么时候开放二胎| 托帕石是什么| 憨厚是什么意思| 男女双修是什么意思| 黄疸是什么引起的| 说梦话是什么原因| 好好的什么意思| 菊花和金银花一起泡水有什么效果| 胸部ct平扫能检查出什么| hpv56阳性是什么意思| 前戏是什么| 蚕蛹吃什么| 体脂是什么意思| 姜子牙是什么神仙| k代表什么意思| 分差是什么意思| hpv检查什么| 腹部胀疼是什么原因| 三级残疾是什么程度| 男生适合养什么小型犬| 张属于五行属什么| 白带黄绿是什么原因| 脾胃虚弱吃什么药| 早泄吃什么药见效| 属兔本命佛是什么佛| 狄仁杰为什么才三品| 百度Jump to content

专利申请折射人脸识别热潮 中国监控类专利领先人脸识别专利脸部识别

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 24.50.56.74 (talk) at 00:16, 1 August 2025 (Clang C modules). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
百度 而本场比赛是库里上次受伤后复出的第一场比赛,手感火热,全场出场25分钟,18投10中,其中三分球8投3中,6罚6中,得到29分,效率非常高,据悉这次是左膝内侧副韧带二级扭伤,缺席时间暂时无法确定,要看具体伤情和复查情况。

Modules in C++ are a feature added in C++20 implementing modular programming as a modern alternative to precompiled headers.[1] A module in C++ comprises a single translation unit.[2] Like header files and implementation files, a module can contain declarations and definitions, but differ from precompiled headers in that they do not require the preprocessor directive #include, but rather are accessed using the word import. A module must be declared using the word module to indicate that the translation unit is a module.[1] A module, once compiled, is stored as a .pcm (precompiled module) file which acts very similar to a .pch (precompiled header) file.[3]

Modules most commonly have the extension .cppm (primarily common within Clang and GCC toolchains), though some alternative extensions include .ixx and .mxx (more common in Microsoft/MSVC toolchains).[4]

Though the standard C language does not have modules, dialects of C allow for modules, such as Clang C.[5] However, the syntax and semantics of Clang C modules differ from C++ modules significantly.

History

Prior to the conception of modules, C++ relied on the system of headers and source files. Precompiled headers existed and were similar to modules as snapshots of translation units easier to parse by the compiler and thus providing faster compilation[6], but did not have the same laws of encapsulation as modules. Modules were first proposed in 2012 for inclusion to C++14[7], but underwent extensive revisions and an entire redesign until the modern form was merged into C++20.[8]

Main uses

Modules provide the benefits of precompiled headers of faster compilation than #included traditional headers, as well as and faster processing during the linking phase.[9][10] This is because modules are not handled by the C preprocessor during the preprocessing step, but rather directly by the compiler during compilation.[11] Modules also reduce boilerplate by allowing code to be implemented in a single file, rather than being separated across a header file and source implementation, although separation of "interface file" and "implementation file" is still possible with modules, though modules provide a cleaner encapsulation of code.[2] Modules eliminate the necessity of #include guards or #pragma once, as modules do not directly modify the source code. Modules, unlike headers, do not have to be processed or recompiled multiple times.[9] However, similar to headers, any change in a module necessitates the recompilation of not only the module itself but also all its dependencies, and the dependencies of those dependencies, et cetera. Like headers, modules do not permit circular dependencies, and will not compile.[12]

A module is imported using the keyword import followed by a module name[a], while a module is declared with export module followed by the name. All symbols within a module meant to be exposed publicly are marked export, and importing the module exposes all exported symbols to the translation unit. If a module is never imported, it will never be linked.[13] Modules can export named symbols, but not macros which are consumed before compilation.[14]

Unlike header inclusions, the order of import statements do not matter.[9] A module can allow for transitive imports by marking an import with export import, which re-exports the imported module to a translation unit that imports the first module.[1] Modules do not enforce any notion of namespaces, but it is not uncommon to see projects manually associate modules to namespaces (for example, a namespace like exampleproj::util::contents being tied to the module exampleproj.util.contents).[1] using statements will only be applied in translation units if explicitly marked export, making it much less likely that using a using statement to bring symbols into the global namespace will cause name clashes across module translation units. This resolves pollution of using statements in headers, which due to textual inclusion of the header by an #include directive, will always result in using statements adding symbols into scope, even if unintentional.

Standard library modules

Since C++23, the C++ standard library has been exported as a module as well, though as of currently it must be imported in its entirety (using import std;).[15] The C++ standards offer two standard library modules:

Name Description
std Exports all declarations in namespace std and global storage allocation and deallocation functions that are provided by the importable C++ library headers including C library facilities (although declared in standard namespace).
std.compat Exports the same declarations as the named module std, and additionally exports functions in global namespace in C library facilities. It thus contains "compat" in the name, meaning compatibility with C.

The module names std and std.* are reserved by the C++ standard, and thus declaring a module whose name matches either pattern will issue a compiler warning.[16] However, most compilers provide a flag to bypass or suppress that warning (for example -Wno-reserved-module-identifier in Clang and GCC).[3]

Tooling support

Currently, only GCC, Clang, and MSVC offer support for modules and import std;.[17] The Clangd language server supports modules.

Build system support varies. CMake, MSBuild, XMake, Meson, and Build2 provide full support for modules. Generated build systems such as Make and Ninja also have support for modules. However, Gradle for C++ and Bazel do not yet support modules.[18]

Example

A simple example of using modules is as follows:

MyClass.cppm

export module myproject.MyClass;

import std;

export namespace myproject {

class MyClass {
private:
    int x;
    std::string name;
public:
    MyClass(int x, const std::string& name):
        x{x}, name{name} {}

    [[nodiscard]]
    int getX() const noexcept {
        return x;
    }

    void setX(int newX) noexcept {
        x = newX;
    };

    [[nodiscard]]
    std::string getName() const noexcept {
        return name;
    }

    void setName(const std::string& newName) noexcept {
        name = newName;
    }
};

}

Main.cpp

import std;

import myproject.MyClass;

using myproject::MyClass;

int main(int argc, char* argv[]) {
    MyClass me(10, "MyName");
    me.setX(15);
    std::println("Hello, {0}! {0} contains value {1}.", me.getName(), me.getX());
}

Header units

Headers may also be imported using import, even if they are not declared as modules. Imported headers are called "header units", and are designed to allow existing codebases to migrate from headers to modules more gradually.[19][20] The syntax is similar to including a header, with the difference being that #include is replaced with import. As import statements are not preprocessor directives but rather statements of the language read by the compiler[11], they must be terminated by a semicolon. Header units automatically export all symbols, and differ from proper modules in that they allow the emittance of macros, meaning all translation units that import the header unit will obtain its contained macros. This offers minimal breakage between migration to modules.[9] The semantics of searching for the file depending on whether quotation marks or angle brackets are used apply here as well. For instance, one may write import <string>; to import the <string> header, or import "MyHeader.h"; to import the file "MyHeader.h" as a header unit.[1] Most build systems, such as CMake, do not support this feature yet.[21]

Anatomy

Module partitions and hierarchy

Modules may have partitions, which separate the implementation of the module across several files.[1] Module partitions are declared using the syntax A:B, meaning the module A has the partition B. Module partitions cannot individually be imported outside of the module that owns the partition itself, meaning that any translation unit that requires code located in a module partition must import the entire module that owns the partition.[1]

The module partition B is linked back to the owning module A with the statement import :B; in the file containing the declaration of module A or any other module partition of A (say A:C), which implicitly resolves :B to A:B, because the module is named A.[3] These import statements may themselves be exported by the owning module, even if the partition itself cannot be imported directly, and thus importing code from a partition is done by just importing the entire module.[1]

Other than partitions, modules do not have a hierarchical system or "submodules", but typically use a hierarchical naming convention, similar to Java's packages[b]. Only alphanumeric characters and the period and underscore may appear in the name of a module.[22] In C++, the name of a module is not tied to the name of its file or the module's location, unlike in Java[23], and the package it belongs to must match the path it is located in.[24] For example, the modules A and A.B in theory are disjoint modules and need not necessarily have any relation, however such a naming scheme is often employed to suggest that the module A.B is related or otherwise associated with the module A.[1]

The naming scheme of a C++ module is inherently hierarchical, and the C++ standard recommends re-exporting "sub-modules" belonging to the same public API (i.e. module alpha.beta.gamma should be re-exported by alpha.beta, etc.), even though dots in module names do not enforce any hierarchy. The C++ standard recommends lower-case ASCII module names (without hyphens or underscores), even though there is technically no restriction in such names.[25] Also, because modules cannot be re-aliased or renamed (short of re-exporting all symbols in another module), module names can be prefixed with organisation/project names for both clarity and to prevent naming clashes (i.e. google.abseil instead of abseil).[25] Also, unlike Java, whose packages may typically include an additional top-level domain (TLD) in front to avoid namespace clashes, C++ modules need not have this convention (for example, it may be more common to see example.myfunctionality.MyModule than com.example.myfunctionality.MyModule, though both names are valid).

Module purview and global module fragment

In the above example, everything above the line export module myproject.MyClass; in the file MyClass.cppm is referred to as what is "outside the module purview", meaning what is outside of the scope of the module.[1] Typically, all #includes are placed outside the module purview between the statement module; and the declaration of export module, like so:

module; // Optional; marks the beginning of the global module fragment (mandatory if an include directive is invoked above the export module declaration)

// Headers are included in outside the module purview, before the module is declared
#include <print>
#include "MyHeader.h"

export module myproject.MyModule; // Mandatory; marks the beginning of the module preamble

// Imports of named modules and header units come after the module declaration
// Import statements are placed immediately after the module declaration and do not appear after any code or symbol declarations
// In non-module translation units, #include directives precede import statements
import std;
import <string>;
import myproject.util.UtilitySymbols;
import "Foo.h";
import <thirdlib/features/Feature.h>;

// Code here...

module: private; // Optional; marks the beginning of the private module fragment

All code which does not belong to any module exists in the so-called "unnamed module" (also known as the global module fragment), and thus cannot be imported by any module.[1]

The file containing main() may declare a module, but typically it does not (as it is unusual to export main() as it is typically only used as an entry point to the program, and thus the file is usually a .cpp file and not a .cppm file). A program is ill-formed if it exports main() and doing so causes undefined behaviour[26], but will not necessarily be rejected by the compiler.

Private module fragment

A module may declare a "private module fragment" by writing module: private;, in which all declarations or definitions after the line are visible only from within the file and cannot be accessed by translation units that import that module.[3] Any module unit that contains a private module fragment must be the only module unit of its module.[1]

Third-party library support

As modules are a recent addition and compiler vendors were notably slow to develop module support, most third-party libraries are still offered only as headers. However, some popular libraries have added module support. These include fmt (a formatting and printing library), nlohmann.json (a JSON library), and various boost.* libraries from the Boost C++ libraries.[27]

Clang C modules

Clang offers non-standard module support for C, however the semantics differ significantly from C++ modules. Clang C modules exist for essentially the same reason as C++ modules:[5]

  • To ensure translation units are compiled only once
  • To ensure translation units are included only once
  • To prevent leakage of unwanted macros
  • To ensure clear boundaries of a library (i.e. specify what headers belong to what library)
  • To explicitly control what symbols are exported

C modules instead use a file called module.modulemap to define modules. For instance, the C standard library module map may look something like:

module std [system] [extern_c] {
    module assert {
        textual header "assert.h"
        header "bits/assert-decls.h"
        export *
    }

    module complex {
        header "complex.h"
        export *
    }

    module ctype {
        header "ctype.h"
        export *
    }

    module errno {
        header "errno.h"
        header "sys/errno.h"
        export *
    }

    module fenv {
        header "fenv.h"
        export *
    }

    // ...more headers follow...
}

This allows for the importing of C libraries like so:

import std.io;

int main(int argc, char* argv[]) {
    if (argc > 1) {
        printf("Hello, %s!\n", argv[1]);
    } else {
        printf("Hello, world!\n");
    }
    return 0;
}

Clang C modules can also be used in C++, although this is less portable as these conflict with the existing module implementation in C++. For example, the std module shown earlier can be extended to C++ using a requires declaration:

module std {
     // C standard library...

     module vector {
         requires cplusplus
         header "vector"
     }

     module type_traits {
         requires cplusplus11
         header "type_traits"
     }

     // more headers...
}

See also

Notes

  1. ^ The import keyword in C++ differs in meaning than other languages. For instance, import in Java is actually analogous to using in C++ and not C++ import. In the former, an import simply aliases the type or de-qualifies a namespace, because Java loads .class files dynamically as necessary, thus making all types available simply by fully qualifying all namespaces (rather than having to explicitly declare accessible modules). However, in C++ modules are not automatically all linked, and thus they must be manually "imported" to be made accessible, as import indicates that the translation unit must access code in the imported module. Thus, it is probably more appropriate to compare import in C++ to mod in Rust, which "declares" or indicates to the compiler to find the module to link against.
  2. ^ It is more appropriate to compare packages in Java and modules in C++, rather than modules in Java and modules in C++. Modules in C++ and Java differ in meaning. In Java, a module (which is handled by the Java Platform Module System) is used to group several packages together, while in C++ a module is a translation unit, strictly speaking.

References

  1. ^ a b c d e f g h i j k l cppreference.com (2025). "Modules (since C++20)". cppreference.com. Retrieved 2025-08-05.
  2. ^ a b Szalay, R.; Porkoláb, Z. (2025). "Refactoring to Standard C++20 Modules". Journal of Software: Evolution and Process. 37 (e2736). doi:10.1002/smr.2736. Retrieved 2025-08-05.
  3. ^ a b c d "Standard C++ Modules". clang.llvm.org.
  4. ^ "Overview of modules in C++". Microsoft. 24 April 2023.
  5. ^ a b "Modules". clang.llvm.org.
  6. ^ "Creating Precompiled Header Files". MSDN. Microsoft. 2015. Archived from the original on 2025-08-05. Retrieved 2025-08-05.
  7. ^ Daveed Vandevoorde (2025-08-05). "N3347=12-0037: Modules in C++ (Revision 6)" (PDF). ISO/IEC JTC1/SC22/WG21. Retrieved 2025-08-05.
  8. ^ Richard Smith (2025-08-05). "P1103R3: Merging Modules" (PDF). ISO/IEC JTC1/SC22/WG21. Retrieved 2025-08-05.
  9. ^ a b c d "Compare header units, modules, and precompiled headers". Microsoft. 12 February 2022.
  10. ^ Paul Krill (2 June 2022). "C++ 23 to introduce module support". InfoWorld.
  11. ^ a b Michael Spencer (2025-08-05). "P3034R1: Module Declarations Shouldn't be Macros". ISO/IEC JTC1/SC22/WG21. Retrieved 2025-08-05.
  12. ^ ISO/IEC 14882:2020. Programming Languages – C++ (3rd ed.). International Organization for Standardization. §9.3, "Module interface units and import/export rules," and §16.3, "Module dependencies."
  13. ^ ISO/IEC 14882:2020. Programming Languages – C++ (3rd ed.). International Organization for Standardization. §9.3, "Module interface units and import/export rules," and §16.2, "Module import semantics."
  14. ^ Alisdair Meredith (2025-08-05). "DxxxxR0: Modules and Macros". ISO C++. Retrieved 2025-08-05.
  15. ^ "Standard library - Importing modules". cppreference.com.
  16. ^ cppreference.com (2025). "C++ Standard Library". cppreference.com. Retrieved 2025-08-05.
  17. ^ "Compiler support for C++20". cppreference.com.
  18. ^ "Are We Modules Yet?: Tools Support". arewemodulesyet.org. Elias Steurer.
  19. ^ "Walkthrough: Build and import header units in Microsoft Visual C++". Microsoft. 12 April 2022.
  20. ^ "Standard C++ Modules - Header Units". clang.llvm.org.
  21. ^ CppNow (2025-08-05). The Challenges of Implementing C++ Header Units: C++ Modules - Daniel Ruoso - CppNow 2023. YouTube. Retrieved 2025-08-05.
  22. ^ ISO/IEC 14882:2020. Programming Languages – C++ (3rd ed.). International Organization for Standardization. §9.2, "Module interface units and import/export rules."
  23. ^ "Creating a Package". docs.oracle.com.
  24. ^ "Managing Source and Class Files". docs.oracle.com.
  25. ^ a b "Naming guidelines for modules". isocpp.org.
  26. ^ ISO/IEC 14882:2020. Programming Languages – C++ (3rd ed.). International Organization for Standardization. §3.6.1. "Program execution: the main() function."
  27. ^ "Are We Modules Yet?". arewemodulesyet.org. Elias Steurer.
早上尿黄是什么原因 喊6个1是什么意思 嘴唇起皮是什么原因 dw手表属于什么档次 寮房是什么意思
周围神经炎是什么症状 什么病会通过唾液传播 汪峰是什么星座 88年属龙是什么命 多喝水有什么好处坏处
淋巴细胞高是什么意思 多囊卵巢有什么症状表现 晚上梦到蛇是什么意思 皮肤属于什么组织 小腿抽筋是什么原因引起的
检查心脏挂什么科 屁多且臭是什么原因 白牡丹是什么茶 小儿急性喉炎吃什么药 淘米水洗脸有什么作用与功效
牙医靠什么吃饭wzqsfys.com 预防高原反应吃什么药hcv7jop5ns2r.cn span是什么意思hcv9jop2ns7r.cn salsa什么意思hcv7jop6ns8r.cn 山楂有什么功效和作用hcv8jop0ns2r.cn
菌血症是什么病hcv7jop6ns3r.cn 脊柱炎是什么症状hcv8jop9ns8r.cn 4.7号是什么星座hcv7jop4ns5r.cn 泻火是什么意思chuanglingweilai.com 泡妞是什么意思yanzhenzixun.com
胃癌吃什么药hcv9jop3ns2r.cn 抗巨细胞病毒抗体igg高是什么意思hcv7jop6ns4r.cn 经费是什么意思cl108k.com 什么叫放疗治疗hcv7jop9ns2r.cn 疼痛科属于什么科hcv9jop1ns4r.cn
蚕长什么样hkuteam.com 慢性支气管炎吃什么药hcv7jop6ns4r.cn 高危病变是什么意思hcv8jop6ns2r.cn 什么时候恢复的高考qingzhougame.com 盗墓笔记讲了什么hcv8jop5ns9r.cn
百度