From f7ae224f3e2530bb4b05166b6013f8a42432086e Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 20 Mar 2023 22:03:50 +0900 Subject: feat(nuldoc): rename simpara to para See also: https://tdg.docbook.org/tdg/sdocbook/5.1/para.html --- .../cpp-you-can-use-keywords-in-attributes.xml | 68 +++++++++++----------- 1 file changed, 34 insertions(+), 34 deletions(-) (limited to 'content/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.xml') diff --git a/content/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.xml b/content/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.xml index 7f5fc66..3dbb8ff 100644 --- a/content/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.xml +++ b/content/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.xml @@ -16,16 +16,16 @@ - + この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b - - + +
-
- + + タイトル落ち。まずはこのコードを見て欲しい。 - + @@ -50,24 +50,24 @@ ]]>
- + コンパイラのバージョン $ clang++ –version Apple clang version 11.0.0 (clang-1100.0.33.8) Target: x86_64-apple-darwin19.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin - - + + コンパイルコマンド (C17指定) $ clang –std=c++17 hoge.cpp - +
- + この記事から得られるものはこれ以上ないので以下は蛇足になる。 - - + + 別件で cppreference.com の identifier のページ を読んでいた時、次の文が目に止まった。 - +
@@ -81,53 +81,53 @@
- + キーワードでも属性として指定する場合は非キーワードとして使えるらしい。 実際にやってみる。 - - + + 同サイトの keywords のページ から一覧を拝借し、上のコードが出来上がった (C++17 においてキーワードでないものなど、一部省いている)。 大量の警告 (unknown attribute `〇〇' ignored) がコンパイラから出力されるが、コンパイルできる。 - - + + 上のコードでは [[using]] をコメントアウトしているが、これは using キーワードのみ属性構文の中で意味を持つからであり、このコメントアウトを外すとコンパイルに失敗する。 - + - + C++17 の仕様も見てみる (正確には標準化前のドラフト)。 - - + + 引用元: https://timsong-cpp.github.io/cppwp/n4659/dcl.attr#grammar-4 - +
- + If a keyword or an alternative token that satisfies the syntactic requirements of an identifier is contained in an attribute-token, it is considered an identifier. - +
- + identifier の構文上の要件を満たすキーワードまたは代替トークンが attribute-token に含まれている場合、identifier とみなされる」とある。どうやら間違いないようだ。 - - + + ところで、代替トークン (alternative token) とは and (&) や bitor (|) などのことだが、identifier の構文上の要件を満たさないような代替トークンなどあるのか? 疑問に思って調べたところ、代替トークンという語にはダイグラフも含まれるらしい (参考: 同ドラフト) - + <%{ %>} @@ -136,11 +136,11 @@ %:# %:%:## - + identifier の構文上の要件を満たさないような代替トークン」はこれらが当てはまると思われる。 - - + + 調べた感想: 字句解析器か構文解析器が辛そう - + -- cgit v1.2.3-70-g09d2