馒头逼是什么| 孟字五行属什么| 资生堂适合什么年龄段| 什么电视剧好看| 百日咳是什么意思| 摩羯座的幸运花是什么| 讳疾忌医什么意思| 白芷有什么作用与功效| 右肩膀疼痛是什么原因| 平起平坐代表什么生肖| 刺身什么意思| 丁火命是什么意思| hpv什么意思| 嘴唇周围长痘痘是什么原因| pisen是什么牌子| 乳腺增生是什么原因引起的| 担担面是什么面| 子宫下垂是什么症状| dob值阳性是什么意思| 洋葱有什么功效与作用| 狗嚎叫有什么预兆| 烊化兑服是什么意思| 婵字五行属什么| 月经提前来是什么原因| 栀子泡水喝有什么好处| 人为什么会得肿瘤| 幼儿园中班学什么| 什么叫释怀| 吃南瓜有什么好处和坏处| 关元穴在什么位置| 佝偻病缺少什么元素| 颈部淋巴结挂什么科| resp是什么| 血癌是什么原因造成的| 门前栽什么树最好| 樟脑丸是干什么的| 什么是白血病| 红皮鸡蛋和白皮鸡蛋有什么区别| 沐沐是什么意思| 小狗呕吐是什么原因| 白炽灯是什么灯| 大驿土是什么意思| 米虫是什么意思| 壮丁是什么意思| 梦见摘瓜是什么意思啊| 咳嗽吃什么水果| 97年是什么年| 猫贫血吃什么补血最快| 第57个民族是什么民族| 早上9点到10点是什么时辰| no2是什么| 神经痛吃什么药好| 彩字五行属什么| 咽喉肿痛吃什么消炎药| 早上6点到7点是什么时辰| 抗组胺药是什么意思| 头顶是什么穴位| 西安古时候叫什么| 身上长白色的斑点是什么原因| 确认妊娠是什么意思啊| 烂嘴唇是什么原因引起的| ahc是韩国什么档次| 奶嚼口是什么| 眼睛痒用什么滴眼液| 凝视的近义词是什么| 脓疱疮是什么原因引起的| 水飞蓟是什么| 3月20日什么星座| 甜蜜素是什么东西| 雪芽是什么| 真谛是什么意思| 三月十二是什么星座| 李白被人们称为什么| 鸡眼长什么样子图片| 肺胃热盛吃什么中成药| 早晨起床口苦是什么原因| 压疮是什么| 下作是什么意思| 熊吃什么食物| 晚上两点是什么时辰| 孕妇上火了吃什么降火最快| 梦见小老虎是什么预兆| 小孩掉头发是什么原因| 甘霖是什么意思| 康宽杀虫剂能杀什么虫| 68岁属什么| 深井冰什么意思| 1948年中国发生了什么| 排卵日是什么时候| 丁克是什么意思| 1939年中国发生了什么| 2024年属龙的是什么命| 什么是地震| 王八是什么字| 肠憩室是什么意思| 大天真香是什么意思| 学考是什么| 日本为什么侵略中国| 白灼虾是什么虾| 龙井属于什么茶| 门前栽什么树最好| 珍珠鸟吃什么食物| 百合有什么作用与功效| 血红素高是什么原因| 胃出血大便是什么颜色| 为什么一吃饭就肚子疼| 栩字五行属什么| 碰到蛇是什么征兆| 富态是什么意思| 谷子是什么| 星座之王是什么座| 上午八点是什么时辰| 床上有横梁有什么害处| 吃榴莲不能吃什么| 不负卿是什么意思| 泡妞是什么意思啊| 妈妈的哥哥叫什么| 皮肤过敏挂什么科| 深入交流是什么意思| 旖旎是什么意思| 阴郁是什么意思| espresso什么意思| 肠胃炎饮食要注意什么| 什么泡水喝能降血压| 甲辰是什么意思| 念珠菌感染用什么药效果好| 田螺吃什么| 元宝是什么意思| 肾结石有什么表现症状| 1月12日是什么星座| 梦见照相是什么意思| 什么还珠成语| 女性尿出血是什么原因| 今天是什么日子啊| 超凡脱俗是什么意思| AB型血型有什么优势| essence什么意思| 荔枝有什么好处| no.是什么意思| 男性尿频是什么问题| 吃了榴莲不能吃什么| 眼睛闪光是什么症状| 粉色配什么颜色| 盐酸西替利嗪片主治什么| 手上起小水泡痒是什么原因| 12颗珠子的手串什么意思| 胀气吃什么食物好| 益字五行属什么| 湿热吃什么食物好| 血糖偏高可以吃什么水果| 七夕节什么时候| 查肝肾功能挂什么科| 舌苔厚发白是什么原因| 莆田系是什么意思啊| 拔智齿后需要注意什么| 眼睛痒用什么药| 皇后是什么意思| 信阳毛尖属于什么茶| 经期量少吃什么来排血| 百合是什么植物| 拖是什么意思| 血压低挂什么科| 漏尿吃什么药| 什么补钾| 考教师资格证需要什么条件| 传宗接代是什么意思| 连云港有什么特产| 到底为什么| 清宫和无痛人流有什么区别| 国籍填什么| 婴儿什么时候会说话| 产妇吃什么水果好| 妇科和妇产科有什么区别| 梭织是什么意思| 上睑下垂是什么原因造成的| 桃李满天下是什么生肖| 百合什么时候开花| 喝什么降血压| 尿蛋白高是什么原因引起的| 比目鱼是什么鱼| 猪润是什么| 肠息肉是什么原因造成的| 避重就轻是什么意思| 火可念什么| 宝宝睡眠不好是什么原因| 精彩是什么意思| 老年痴呆症是什么原因引起的| 西楚霸王是什么生肖| 拔萝卜是什么意思| 平均红细胞体积偏高是什么意思| 胎盘前置是什么意思| 大腿为什么会长妊娠纹| 移植后宫缩是什么感觉| 孕妇感冒可以吃什么感冒药| 什么运动可以长高| 极核是什么| 庶子是什么意思| 梅毒是什么症状| 眼睛发黄是什么原因引起的| 肩周炎看什么科| 吃什么能立马通大便| 脸色发黑发暗是什么原因| 野生天麻长什么样图片| 白带清洁度lv是什么意思| 肺气肿吃什么药| 尿酸低会引发什么症状| 今年的属相是什么生肖| c位是什么意思| 活性炭是什么东西| 尿尿疼是什么原因| 什么叫大男子主义| 2025年属什么| 左脸长痘是什么原因| 大学生当兵有什么好处| 螨虫用什么药可以杀死它| 心肌缺血吃什么补得快| 什么样子| 早泄吃什么好| nasa是什么牌子| 怀孕生化了是什么原因| 香瓜不能和什么一起吃| 风疹病毒是什么病| 梦见被狗咬是什么意思| 跑步腰疼是什么原因| 射精出血吃什么药最好| 做核磁共振需要注意什么| 打乙肝疫苗需要注意什么| 肌酸激酶高是什么意思| 什么的野鸡| 八一建军节是什么节日| 骶椎隐裂是什么意思| 尿痛流脓吃什么药| 亥是什么意思| 狮子座和什么座最配对| 高危行为是什么意思| 格斗和散打有什么区别| 尿酸高要注意什么| fsh是什么激素| 酥油是什么做的| 骨灰盒什么材质的好| 预检是什么意思| 高压低是什么原因引起的| 6.5是什么星座| 狗狗咬主人意味着什么| 经过的意思是什么| 1975年属什么| 嗓子突然哑了是什么原因引起的| 防晒衣什么材质最防晒| 琅琊榜是什么意思| 法图麦是什么意思| 天蝎男喜欢什么样的女生| 58岁属什么| 水肿是什么意思| 前面有个豹子是什么车| 沸点是什么意思| 凌晨三点醒是什么原因| 接站是什么意思| 吃晕车药有什么副作用| 什么是乳糖不耐受| 这是什么英文| 胆五行属什么| 为什么会长针眼| 红烧肉炖什么菜最好吃| 浮肿是什么原因造成的| 百度

永州快速查处违规饮酒法官

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.
百度 这份工作最终在国家要求持证上岗后被迫结束,因为没能力握笔写字的我实在无法去考那一本心理师资格证。

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.
雅典娜是什么神 屏气是什么意思 伪骨科是什么意思 怀孕前三个月吃什么好 流黄鼻涕是什么原因
eee是什么牌子的鞋 高密度脂蛋白是什么意思 猫的眼睛为什么会发光 罗汉果有什么功效和作用 身上皮肤痒是什么原因
女人出虚汗是什么原因引起的 svip和vip有什么区别 女人性冷淡吃什么药效果好 浛是什么意思 新生儿五行缺什么查询
布鲁斯是什么意思 梦到前妻预示什么 尿不尽吃什么药 晚上睡觉经常醒是什么原因 不怕流氓什么就怕流氓有文化
茱萸是什么东西bjcbxg.com 乌鸡白凤丸男性吃治疗什么hcv9jop6ns2r.cn 什么是性激素hcv8jop1ns4r.cn 不爱说话的人是什么性格hcv8jop6ns0r.cn 抽筋吃什么药hcv8jop3ns5r.cn
彤五行属什么hcv8jop8ns8r.cn 爬山需要准备什么东西hcv8jop8ns7r.cn 生姜吃多了有什么害处hcv8jop2ns0r.cn 检查鼻炎要做什么检查hcv8jop0ns5r.cn 龙凤呈祥是什么生肖hcv9jop7ns1r.cn
吃什么会自然流产hcv9jop0ns6r.cn 光膀子什么意思hcv7jop9ns0r.cn 梦见房子漏水是什么意思beikeqingting.com 大安是什么意思hcv8jop6ns4r.cn 血糖高吃什么水果最好hcv9jop3ns6r.cn
老鼠跟什么属相最配naasee.com 祈祷是什么意思fenrenren.com 什么叫御姐hcv8jop2ns4r.cn 血糖什么时候最高hcv8jop6ns2r.cn 什么叫血沉hcv8jop8ns1r.cn
百度